在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)
執行結果如圖:

