我有一列有这样的数字
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
这将排除任何以 c
或 d
开头的行。在您的示例中,将返回以 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