使用Where = Null,是否有空替代?

时间:2011-10-03 15:34:36

标签: sql-server tsql

如果没有,是否有另一种方法可以使用CASE或IF / THEN标识符切换SELECT语句而不首先将语句放在标量变量中?

有没有办法在不使用IS并使用=符号来设置它的格式?

    SELECT ID FROM TABLE WHERE ID = Null

1 个答案:

答案 0 :(得分:5)

没有。 NULL不是值。将NULL视为一种条件,IS NULLIS NOT NULL正在测试此条件。

在此示例中,您可以测试实际值,或缺少条件所代表的值

WHERE
   (X IS NULL OR X = @X)

OR

WHERE
  (@X IS NULL OR X = @X)

首先测试你的确定条件:

WHERE
    CASE X
      WHEN 1 THEN
      WHEN 2 THEN
      ELSE --  includes NULL
   END = ...

你的问题很抽象,很难给出更准确的答案。

例如,你有NOT IN和NULL的问题吗?如果是这样,请使用NOT EXISTS。