【发布时间】:2014-11-22 00:25:11
【问题描述】:
我有一列有这样的数字
p123
p139
d291
c9384
p393
null
null
c148
我想比较这个列,它说它只包含 p 和 null 值。我的代码是:
WHERE (COLUMN NOT LIKE 'C%' AND COLUMN NOT LIKE 'D%' OR COLUMN IS NULL)
当我有条件 COLUMN NOT LIKE 'C%' 和 COLUMN NOT LIKE D% 时,它返回时没有 null,但是当我添加 is null 值时,它返回一个 c 列,即使有一个与不包括 c 的比较。我不知道如何获得正确的订单或使用什么括号。
【问题讨论】:
-
你说
includes only the p,但你说NOT LIKE 'C%' AND COLUMN NOT LIKE D%。什么是正确的?那么如果有另一条记录A123,是否应该包含呢? -
是的。可能会有这样的情况,它会被包括在内。我们只知道我们不想要 c 和 d 但不想排除 null。
-
这应该可以工作(在你修复 'D%' 之后)。请在sqlfiddle.com/#!6 显示一个失败的测试用例。