我們常常必須基於多組數據表計算不同的聚集。例如下例通過三個獨立查詢:
select count(*) from emp where sal<1000; select count(*) from emp where sal between 1000 and 5000; select count(*) from emp where sal>5000;
這樣我們需要進行三次全表查詢,但是如果我們使用case語句:
select count (sale when sal <1000 then 1 else null end) count_poor, count (sale when between 1000 and 5000 then 1 else null end) count_blue_collar, count (sale when sal >5000 then 1 else null end) count_poor from emp;
這樣查詢的結果一樣,但是執行計劃只進行了一次全表查詢。