比较一行并包含null

时间:2014-11-22 00:25:11

标签: sql ssms-2012

我的列有这样的数字

p123
p139
d291
c9384
p393
null
null
c148

我想比较这个列,它只包含p和null值。我的代码是:

WHERE (COLUMN NOT LIKE 'C%' AND COLUMN NOT LIKE 'D%' OR COLUMN IS NULL)

当我有条件栏不喜欢' C%' AND COLUMN不喜欢D%它返回null,但是当我添加is null值时,它返回一个c列,即使有一个比较不包含c。我不知道如何使订单正确或使用什么括号。

2 个答案:

答案 0 :(得分:0)

应该是:

 WHERE COLUMN LIKE 'P%' OR COLUMN IS NULL

关于你对我的回答的评论,如果你想要的是所有不匹配的价值" D"或" C"在第一个字符中,然后WHERE条件是这样的:

WHERE (COLUMN NOT LIKE 'C%' AND COLUMN NOT LIKE 'D%') OR COLUMN IS NULL

答案 1 :(得分:0)

您可以使用通配符:

where [column] not like '[cd]%' or [column] is null

这将排除以cd开头的所有行。在您的示例中,将返回以p开头的三行和包含null的两行。