一次坑爹的Oracle in查詢


1.底下這種in查詢,Hibernate中分頁查詢,分頁出現某些數據重復出現

and ap.dep_id in (select id from t_department connect  by prior id = parent_id start with id in ('8b8cf024607293f5016072d983d10007') ) 

//select id from t_department connect  by prior id = parent_id start with id in ('8b8cf024607293f5016072d983d10007')  查詢當前部門,及其子部門所有的id

2.上面錯誤改成exists查詢就好了

   and exists( select id from t_department where ap.dep_id=id connect by  priorid = parent_id start with id in ('8b8cf024607293f5016072d983d10007' ) )

還有對於oracle查詢來說,in查詢中的數據最多為1000,超過1000也會報錯,所以在知道數據不會超過1000的情況下,用in查詢,如果已經預知到數據要超過1000,最好改為exists查詢

 微信公眾號

 

 


免責聲明!

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



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