我有一个看起来很直接的问题,但由于某些原因,我无法摆脱我从选择打击空值。我需要做的就是返回一行,即没有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)''。 –