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

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

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

Oracle不等于符号过滤null情况 随笔 第1张

 

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

二、用不等于“<>”操作符查询: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为空的记录被过滤掉,这样查询结果会丢失记录。

Oracle不等于符号过滤null情况 随笔 第2张

解决方法: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)

执行结果如图:

Oracle不等于符号过滤null情况 随笔 第3张

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄