我想计算一下日期的行数是null.i尝试了
SELECT R.COUNTRY_CD,COUNT(R.EFFECTIVE_END_DT) AS d_null
FROM REIMBURSEMENT R
GROUP BY R.COUNTRY_CD,R.EFFECTIVE_END_DT
HAVING R.COUNTRY_CD = @COUNTRY_CD AND R.EFFECTIVE_END_DT IS NULL
但它将d_null设为0 ...
如何比较NULL
答案 0 :(得分:5)
COUNT
仅计算非NULL
条目。
尝试使用COUNT(*)
或COUNT(1)
代替COUNT(R.EFFECTIVE_END_DT)
。
由于您提供了Country_CD
作为参数,并且只需要NULL
个日期,因此您可以将查询简化为:
SELECT R.Country_CD, COUNT(*) AS d_null
FROM Reimbursement R
WHERE R.Country_CD = @Country_CD AND R.Effective_End_DT IS NULL
答案 1 :(得分:0)
试试这个
SELECT R.COUNTRY_CD,COUNT(R.EFFECTIVE_END_DT) AS d_null
FROM REIMBURSEMENT R
GROUP BY R.COUNTRY_CD,R.EFFECTIVE_END_DT
HAVING R.COUNTRY_CD = @COUNTRY_CD AND DATE_FORMAT(R.EFFECTIVE_END_DT,"%y") IS NULL