标准SQL是;“不为空”;当您有匹配条件时是否冗余?

标准SQL是;“不为空”;当您有匹配条件时是否冗余?,sql,null,Sql,Null,如果我说 where C1 is not null -- redundant given next line? and C1 > 5 (or "C1 like 'MOM'", or "C1 <> 5" or "C1 IN ('A', 'B', 'C')) 其中C1不为空——下一行是否为冗余? C1>5 (或“C1类似于‘妈妈’”,或“C1 5”或“C1 IN(‘A’、‘B’、‘C’)”) C1不为空的是否冗余?是否存在不清楚的“技巧”情况 我使用MS

如果我说

   where C1 is not null   -- redundant given next line?
   and C1 > 5

   (or "C1 like 'MOM'", or "C1 <> 5" or "C1 IN ('A', 'B', 'C'))
其中C1不为空——下一行是否为冗余?
C1>5
(或“C1类似于‘妈妈’”,或“C1 5”或“C1 IN(‘A’、‘B’、‘C’)”)
C1不为空的
是否冗余?是否存在不清楚的“技巧”情况


我使用MS和IBM SQL,但我认为答案通常适用于SQL。

在Microsoft SQL Server中,如果值为
NULL
,则与Microsoft SQL Server中的
=
进行任何比较,如果值为
NULL
,则与
=
进行任何比较都是未知的r大于
false
但其余的是正确的(如果为false,可以通过添加
not
not unknown
也是未知的)它是
unknown
而不是
false
但其余的是正确的(如果为false,您可以通过添加
not
使其为真,但
not unknown
也是未知的)