csn_ap_invoice_headers表中 create-type 有3个值 null、20、30
查找出create-type不为30的数据
select create_type from csn_ap_invoice_headers where create_type != '30'
得到是全是 create_type 为20的数据。
加上限定条件后,却查不出记录
select create_type from csn_ap_invoice_headers where create_type != '30'
and (doc_type = 'homecost' and sheetcode = '27.XYS.50.10.90')
select create_type from csn_ap_invoice_headers group by create_type;
select create_type from csn_ap_invoice_headers where create_type != '30' group by create_type;
当列中有空值的时候,如果使用 != 的时候,where只有该列的时候,会查询出不为null的数据,当有其他条件的时候若查询的数据带有create_type为null的数据,则查不到数据。可以用 nvl(create_type,'10') != '30' 解决该问题。
本文探讨了在处理包含空值的列时,SQL查询中使用!=运算符的局限性,并提出了解决方案,即使用nvl函数来正确处理空值,确保查询结果的准确性。

2万+

被折叠的 条评论
为什么被折叠?



