1

当我的 COLUMN1 数据类型为 CHARACTER 时,我可以使用 WHERE CLAUSE IN:

从表 1 中选择 *
WHERE COLUMN1 IN ('A', 'B', 'C');

但是当我的 COLUMN2 数据类型为 NUMERIC 时尝试使用 WHERE CLAUSE IN 时,我会遇到语法错误。如下声明:

从表 2 中选择 *
在 (1,2,3) 中的第 2 列;

我知道有一个 BETWEEN 但它不能满足我的需要,因为我不是在 Range 中选择而是在 Exact number series 中选择。

谢谢。

4

1 回答 1

1

我能想到的一个问题是 whencolumn1不是数字类型。当您尝试与整数进行比较时(例如使用in),这将返回错误。

您可以尝试以下方法来模仿错误:

select *
from (select cast('1' as varchar(255)) as val) t1
where val in (1, 2);

小心让常量成为正确的类型。

于 2013-10-31T02:13:21.100 回答