2章クエリ結果のソート

本章では、クエリ結果の見え方のカスタマイズを取り上げます。結果セットの構造を制御する方法を理解すると、より読みやすく意味のあるデータを提供できます。

レシピ2.1 クエリ結果を指定の順序で返す

問題

部署10の従業員の名前、職種、給与を従業員の給与順で(低い方から高い方へ)表示したい。例えば、次のような結果セットを返したい。

ENAME       JOB               SAL
----------  ---------  ----------
MILLER      CLERK            1300
CLARK       MANAGER          2450
KING        PRESIDENT        5000

解決策

ORDER BY句を使います。

select ename,job,sal
  from emp
 where deptno = 10
 order by sal asc

解説

ORDER BY句を使うと、結果セットの行を並べ替えることができます。上の解決策では、行をSALの昇順でソートしています。ORDER BYはデフォルトで昇順にソートするので、ASC句は省略できます。また、DESCを指定すると降順にソートされます。

select ename,job,sal
  from emp
 where deptno = 10
 order by sal desc

ENAME       JOB               SAL
----------  ---------  ----------
KING        PRESIDENT        5000
CLARK       MANAGER          2450
MILLER      CLERK            1300

ソートする列名を指定する代わりに、その列を表す番号を指定することもできます。この番号は1から始まり、SELECTリストを左から右へカウントした項目の順番に該当します。例を示します。 ...

Get SQLクックブック 第2版 ―データベースエキスパート、データサイエンティストのための実践レシピ集 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.