Oracle不等於符號過濾null狀況

在Oracle查詢過程當中,條件查詢時,用「<>」操做符進行查詢會過濾掉字段爲null的記錄。

1、不使用「<>」操做符查詢:select t.field_id,t.field_name from S_PROJECT_FIELD_DATA t WHERE t.project_id ='8a81a7c96073effe01608c13985366b4'

結果如圖:field_id爲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'

結果如圖所示: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)

執行結果如圖:

相關文章
相關標籤/搜索