按确切数字选择 where 子句
Posted
技术标签:
【中文标题】按确切数字选择 where 子句【英文标题】:Select where clause by exact numbers 【发布时间】:2013-10-31 02:07:32 【问题描述】:当我的 COLUMN1 数据类型为 CHARACTER 时,我可以使用 WHERE CLAUSE IN:
从表 1 中选择 * WHERE COLUMN1 IN ('A', 'B', 'C');
但是当我的 COLUMN2 数据类型为 NUMERIC 时尝试使用 WHERE CLAUSE IN 时,我会遇到语法错误。如下声明:
从表 2 中选择 * WHERE COLUMN2 IN (1,2,3);
我知道有一个 BETWEEN,但它不能满足我的需要,因为我不是在 Range 中选择,而是在 Exact number series 中选择。
谢谢。
【问题讨论】:
两个选择都应该可以正常工作。 是的。你说的对。这是我的错。谢谢。 【参考方案1】:我能想到的一个问题是column1
不是数字类型。当您尝试与整数进行比较时(例如使用in
),这将返回错误。
您可以尝试以下方法来模仿错误:
select *
from (select cast('1' as varchar(255)) as val) t1
where val in (1, 2);
注意常量的类型是正确的。
【讨论】:
以上是关于按确切数字选择 where 子句的主要内容,如果未能解决你的问题,请参考以下文章
条件 Where 子句比较数字值(如果它是数字)或字符串值(如果它不是数字)
SELECT FROM Table WHERE 不部分的确切数字在字符串 SQL 中