当我的COLUMN1数据类型为CHARACTER:
时,我可以使用WHERE CLAUSE INSELECT * FROM TABLE1 WHERE COLUMN1 IN ('A', 'B', 'C');
但是当我的COLUMN2数据类型为NUMERIC时,当我尝试使用WHERE CLAUSE IN时,我将出现语法错误。如下声明:
SELECT * FROM TABLE2 WHERE COLUMN2 IN (1,2,3);
我知道有一个BETWEEN,但它不能满足我的需要,因为我没有在Range中选择但是在精确的数字系列中。
感谢。
答案 0 :(得分:1)
我能想到的一个问题是column1
不是数字类型。当您尝试与整数进行比较时(例如使用in
),这将返回错误。
您可以尝试以下方法来模仿错误:
select *
from (select cast('1' as varchar(255)) as val) t1
where val in (1, 2);
小心使常量成为正确的类型。