WHERE子句条件检查NULL

时间:2013-06-03 10:01:26

标签: sql

假设我有一个包含IDDate1Date2列的表格,其中Date2可以是NULL。我现在想要一个忽略Date2的SQL语句,如果它是NULL

所以我需要这样的东西:

SELECT *
FROM
  [myTable]
WHERE
  ID = @someId
  AND Date1 <= GETDATE()
  AND Date2 >= GETDATE() IF Date2 IS NOT NULL

所以我想检查Date2是否不是NULL,然后将其与当前日期进行比较。如果是NULL那么我只想忽略它 希望我的要求清晰易懂。

干杯
西蒙

5 个答案:

答案 0 :(得分:3)

AND Date1 <= GETDATE()
AND (Date2 IS NULL OR Date2 >= GETDATE() )

AND Date1 <= GETDATE()
AND COALESCE(Date2, GETDATE()) >= GETDATE()-- which means : if Date2 IS NULL say Date2 = GETDATE()

答案 1 :(得分:2)

AND (Date2 >= GETDATE() OR Date2 IS NULL)

答案 2 :(得分:1)

你可以这样做:

ISNULL(Date2, GETDATE()) >= GETDATE() 

答案 3 :(得分:1)

试试这个sql。

    SELECT *
    FROM yourtable
    WHERE ID = @someId
    AND Date1 <= GETDATE()
    AND (Date2 IS NULL
    AND Date2 >= GETDATE());

答案 4 :(得分:0)

SELECT *
FROM
  [myTable]
WHERE
  ID = @someId
  AND Date1 <= GETDATE()
  AND Date2 NOT IS NULL
  AND Date2 >= GETDATE();