isnull function vs IS NULL



作为更广泛的sql脚本中case语句的一部分,我有以下内容:

当KWB。ASYCONDTYPE in ('CIVIL', 'CIVIL2'( 和 KWB。公民为空,则为"无民事CG">

这会将 1405 条记录的字段设置为"无民事 CG">

当KWB。ASYCONDTYPE in ('CIVIL', 'CIVIL2'( 和 ISNULL(KWB.CIVCONDGRADE,''( = '' 然后'没有民事CG'

这将为 1410 条记录设置字段,这似乎是正确的答案, 因为第一个实例中未设置的 5 个字段具有 ASYCONDTYPE = 'CIVIL' 并且 CIVCONDGRADE 确实为 NULL

有点令人担忧,因为我希望它们会产生相同的结果,如果不是 excel 过滤,它可能会被忽视。

任何人都可以提供解释,或者至少在我可以检查数据集或数据库的地方,使我能够了解正在发生的事情吗?

这应该是因为你得到了 1405 条记录,其中"KWB.CIVCONDGRADE"实际上是空的,其中"KWB.CIVCONDGRADE"不是空,而只是一个空白字段。

尝试使用此查询检查它是否产生 5 条记录:

WHEN KWB.ASYCONDTYPE IN ('CIVIL','CIVIL2') AND KWB.CIVCONDGRADE = '' THEN 'NO CIVIL CG'

相关内容

最新更新