gpt4 book ai didi

sql - 删除这些该死的 NULL

转载 作者:行者123 更新时间:2023-12-01 21:42:23 25 4
gpt4 key购买 nike

我有一个看起来很简单的问题,但由于某种原因,我无法从打击选择中删除空值。我需要做的就是返回一行,即没有 NULL 值的行。有人可以指出我的方法中的错误吗? :)

我运行时得到的结果:

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)

最佳答案

您得到此 null 是因为数据与 case 语句中的任何条件都不匹配。换句话说,在该行中,您的 ConfigID 值既不是 3 也不是 4。该行为当没有任何条件匹配时,case 语句的计算结果为 null,因此该行将返回 null。

此外,此函数:ISNULL(ConfigID,'') 将任何 null 替换为空字符串(非空值)。

因此,ISNULL(ConfigID,'') IS NOT NULL 没有意义。它始终为 true,因为 ISNULL 始终返回非空值。您应该从查询中删除所有对 ISNULL() 的使用,因为它们都不是必需的。

关于sql - 删除这些该死的 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43806442/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com