我有一個看起來很直接的問題,但由於某些原因,我無法擺脫我從選擇打擊空值。我需要做的就是返回一行,即沒有NULL值的行。有人能以我的方式指出錯誤嗎? :)刪除這些darn NULLS
運行的時候,我得到的結果是:
EffectiveDate Refund
2015-05-18 00:00:00.000 NULL
2015-05-18 00:00:00.000 1
我希望回:
EffectiveDate Refund
2015-05-18 00:00:00.000 1
我的查詢:
select md.EffectiveDate,
CASE
WHEN
ISNULL(ConfigID,'') = 3 THEN '1'
WHEN
ISNULL(ConfigID,'') = 4 THEN '2'
END AS Refund
from dbo.PartnerBankConfig md
where md.PartnerID= 100000509
and md.EffectiveDate = (select max(EffectiveDate)
from dbo.PartnerBankConfig
where PartnerID = 100000509
and ISNULL(ConfigID,'') IS NOT NULL)
那麼,如果你使用ISNULL的空值轉換爲空字符串,則IS NOT NULL永遠評估爲True ... –
@JacobH:它永遠不會評估爲False –
用'和ConfigID IS NOT NULL'替換'和ISNULL(ConfigID,''IS NOT NULL)''。 –