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)

执行结果如图:

 

posted @ 2019-05-06 10:48  ronglg  阅读(5286)  评论(0)    收藏  举报