在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)
执行结果如图: