比较行并包含空值



我有一列有这样的数字

p123
p139
d291
c9384
p393
null
null
c148

我想比较此列,其中它说它仅包含 p 和空值。我的代码是:

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

当我有条件列不像"C%"和列不像 D% 时,它返回时没有空值,但是当我添加 IS NULL 值时,它返回一个 a C 列,即使有一个比较不包括那些与 C 的列。我不知道如何正确排列顺序或使用什么括号。

您可以使用通配符:

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

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

它应该是:

 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

最新更新