Oracle不等于符号过滤null情况


在Oracle查询过程中,条件查询时,用“<>”操作符进行查询会过滤掉字段为null的记录。

一、不使用“<>”操作符查询:select t.field_id,t.field_name from S_PROJECT_FIELD_DATA t WHERE t.project_id ='8a81a7c96073effe01608c13985366b4'

结果如图:field_id为null的记录可以查询到。

 

二、用不等于“<>”操作符查询:select t.field_id,t.field_name from S_PROJECT_FIELD_DATA t WHERE t.project_id ='8a81a7c96073effe01608c13985366b4' AND  t.field_id<>'2c90930f5e086ff8015e088035e20010'

结果如图所示:field_id为空的记录被过滤掉,这样查询结果会丢失记录。

解决方法:select t.field_id,t.field_name from S_PROJECT_FIELD_DATA t WHERE t.project_id ='8a81a7c96073effe01608c13985366b4' AND  (t.field_id<>'2c90930f5e086ff8015e088035e20010' OR t.field_id IS NULL)

执行结果如图:

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM