【发布时间】:2017-12-04 06:33:31
【问题描述】:
作为更广泛的 sql 脚本中 case 语句的一部分,我有以下内容:
当 KWB.ASYCONDTYPE IN ('CIVIL','CIVIL2') 并且 KWB.CIVCONDGRADE 为 null THEN 'NO CIVIL CG'
这会将 1405 条记录的字段设置为“NO CIVIL CG”
当 KWB.ASYCONDTYPE IN ('CIVIL','CIVIL2') AND ISNULL(KWB.CIVCONDGRADE,'') = '' THEN 'NO CIVIL CG'
这将为 1410 条记录设置字段,这似乎是正确的答案, 因为第一个实例中未设置的 5 个字段具有 ASYCONDTYPE = 'CIVIL' 并且 CIVCONDGRADE 确实为 NULL
有点担心,因为我希望它们产生相同的结果,如果不是用于 excel 过滤,它可能会被忽视。
谁能提供解释,或者至少我可以在数据集或数据库中检查以使我了解发生了什么?
【问题讨论】: