Oracle中any和all的區別用法


  對於any,all的用法,書中說的比較繞口,難以理解,如果通過舉例就會比較清晰. 

  any的例子:

select * from t_hq_ryxx where gongz > any (select pingjgz from t_hq_bm);

輸出的結果是所有大於字段'pingjgz'中最小數的值,簡單來說就是輸出的數全部大於'pingjgz'字段中的最小值;

select * from t_hq_ryxx where gongz < all (select pingjgz from t_hq_bm);

輸出的結果是所有小於字段'pingjgz'中最大數的值,簡單來說就是輸出的數全部小於'pingjgz'字段中的最大值;

即:大於最小值,小於最大值

 

  all的例子:

select * from t_hq_ryxx where gongz > all (select pingjgz from t_hq_bm);

輸出的結果是所有大於字段'pingjgz'中最大數的值,簡單來說就是輸出的數全部大於'pingjgz'字段中的最大值;

select * from t_hq_ryxx where gongz < all (select pingjgz from t_hq_bm);

輸出的結果是所有小於字段'pingjgz'中最小數的值,簡單來說就是輸出的數全部小於'pingjgz'字段中的最小值;

即:小於最小值,大於最大值

如果還是不清楚,把下面這句看懂也就夠了:

  any 就是匹配集合中的任意一個就滿足條件了;而 all 要跟所有的都比較,所有都滿足以后才為真。

 


免責聲明!

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



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