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)

執行結果如圖:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM