恥ずかしながら、最近TOP句を知りました・・・
テーブルAをcolBでソートして、先頭の10件を取得するクエリ
SELECT TOP 10 *
FROM A
ORDER BY colB;
ここでふと疑問が・・・
Topが先か、Orderが先か。
心配になったので実行計画をとってみると、
「Top N Sort」っていう計画になっていて、
OrderしてからTopされてました。
うろ覚えですが、確かOracleSqlだと下記のようにしないと
正しい結果にならなかったような気が・・・
SELECT *
FROM (SELECT * FROM A ORDER BY colB) ORDER_DATA
WHERE ROWNUM <= 10;
何気にTOP句ってすごいなぁと思った今日この頃でした^^;