oracle的not in的使用


oracle中not in或者in的使用方法

                            如表 user 

           id                           number                                主健                                     主健ID                                   
           name           varchar              姓名
           pid           varchar         父id

 

 

 

                           user表數據

             id                                      name                                      pid                       
              1                  張三                   1,2,3,5
              2                  李四                   1,2,3,5
              3                  劉德華                   1,2


 

 

 

            查詢出所有的id不再pid里面的sql語句寫法:

           

錯誤方法:
sleect * from user u where id not in (u.pid)
會提示無效數字類型,
但是如果是寫成這樣就可以了:
sleect * from user u where id not in (1,2,3,4)
但是有人會說,把id改成字符串類型應該可以,
很遺憾的說也是不可以的,
因為改成字符串正確的寫法是
sleect * from user u where id not in ('1','2','3','4')

所以要解決這個問題可以在in里面嵌套select查詢語句就可以解決

sleect * from user u1 where id not in (select u2.pid from u2 where u2.pid=u1 .pid)
這樣就可以解決萬惡的in語句


免責聲明!

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



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