對於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 要跟所有的都比較,所有都滿足以后才為真。
