作为更广泛的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'