0

我有一列有这样的数字

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%' AND COLUMN NOT LIKE D% 时,它返回时没有空值,但是当我添加 is null 值时,它返回一个 ac 列,即使有比较为 not包括带有 c 的。我不知道如何使订单正确或使用什么括号。

4

2 回答 2

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
于 2014-11-22T00:29:08.297 回答
0

您可以使用通配符:

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

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

于 2014-11-22T02:10:59.180 回答