這裏是我的工作代碼:SQL:比較和空值
SELECT 'HOPE', RPRAWRD_AIDY_CODE, COUNT(DISTINCT RPRAWRD_PIDM) AS NumberOfStudents, Sum(RPRAWRD_PAID_AMT) AS AmountPaid
FROM FAISMGR.RPRAWRD, FAISMGR.RFRBASE
WHERE RPRAWRD_AIDY_CODE = '1213'
AND RPRAWRD_FUND_CODE = RFRBASE_FUND_CODE
AND RPRAWRD_AWST_CODE = 'ACPT'
AND RPRAWRD_PAID_AMT > 0
AND RFRBASE_FSRC_CODE = 'HOPE'
GROUP BY RPRAWRD_AIDY_CODE;
結果產生3952條記錄。
一些記錄包含在RPRAWRD_PAID_AMT NULL,如果我添加
AND RPRAWRD_PAID_AMT IS NOT NULL
WHERE子句,我得到完全相同的結果:3952條記錄。所以,我的問題是:> 0排除空值,因爲它們評估爲false,使得不是NULL是不必要的?
是的 - 當你已經有了'RPRAWRD_PAID_AMT> 0'時,將會選擇'** no **在'RPRAWRD_PAID_AMT'中有'NULL'的行。因此,添加「不是NULL」確實沒有意義,也不需要 –