SQL:AND子句中偶尔有NULL值的列

时间:2018-07-20 11:12:17

标签: sql

下面是iam面对该问题的大型查询的一部分。

SELECT metricname,careertrackid
FROM atp_9375_forecast
WHERE ibfcollectionid = vspforecasts.ibfid
  AND   atp_9375_forecast.atpclclg = atp_9375_cl.careerlevelcode
  AND   (YEAR>= 2018 AND MONTH>=7)

我面临的问题在第二个AND子句中。 MONTH列有时为NULL,因此查询未返回正确的结果。

我需要处理MONTH子句中的NULL值。

我打破了AND条件,并尝试了如下所示的操作,但这没有用。

AND   YEAR>= 2018 
 AND MONTH is not null 
 AND Month>=7

1 个答案:

答案 0 :(得分:1)

此逻辑:

WHERE . . . AND  
      (YEAR >= 2018 AND MONTH >= 7)

等效于:

WHERE . . . AND  
      (YEAR >= 2018 AND MONTH >= 7 AND MONTH IS NOT NULL)

如果要包含NULL个月,则:

WHERE . . . AND  
      (YEAR >= 2018 AND (MONTH >= 7 OR MONTH IS NOT NULL))