【发布时间】:2013-02-05 16:41:44
【问题描述】:
我想编写一个查询,返回 X 列中的所有非空单元格且其值不是 2、5 或 8。我这样做对吗?因为我的结果肯定看起来不对。
SELECT *
FROM [Example].[dbo].[table]
WHERE X <> '' AND (X <> '2' OR X <> '5' OR X <> '8');
【问题讨论】:
-
也许我没有以正确的方式捕捉空单元格?
-
列是否允许为空?
-
X <> '2' OR X <> '5' OR X <> '8'表示如果它与其中任何一个不同,那就是真的。由于很难不存在(例如,如果 X=2,它仍然不同于 5 和 8),因此带括号的表达式始终为真(除非涉及 NULL,这似乎不是本意) -
@Joachim 感谢您帮助我更好地理解逻辑。我显然错了。
标签: sql sql-server-2008 select