Oracleで昇順・降順でソートするOrder By ASC、DESC【SQL】
Oracleで昇順・降順でソートするにはORDER BYでASC、DESCを使用します。
- ASC・・・昇順(小さい順)
- DESC・・・降順(大きい順)
例1. 番号順(昇順)に取得するパターン
昇順・ASCなし
--番号順 SELECT * FROM STUDENT ORDER BY EMPNO ASC;
[結果]
name |
AOKI |
SATOU |
YAMADA |
昇順(若い順)は「ASC」を使います。
昇順・ASCなし
--番号順(ASC省略) SELECT * FROM STUDENT ORDER BY EMPNO;
[結果]
name |
AOKI |
SATOU |
YAMADA |
ASCはデフォルト値なのでつけなくても構いません。
例2. 番号順(降順)に取得するパターン
--番号順(降順) SELECT * FROM STUDENT ORDER BY EMPNO DESC;
[結果]
name |
YAMADA |
SATOU |
AOKI |
降順(逆順)はDESCを使います。
例3. 名前順、番号順(昇順)に取得するパターン(複数列)
ここからはSTUDENTテーブルが複数列あるケースで説明します。
--名前順、番号順 SELECT EMPNO,EMPNAME FROM STUDENT ORDER BY EMPNO,EMPNAME ASC;
<結果>
EMPNO | EMPNAME |
001 | AOKI TAROU |
002 | SATOU JIROU |
003 | SATOU SABUROU |
004 | YAMADA HANAKO |
複数列を並び替える場合は、列をカンマ区切りで書きます。この場合、「ORDER BY EMPNO,EMPNAME ASC」なので、EMPNO 順に並び、その中でさらにEMPNAME 順に並びます。
例4. 列を省略するパターン
--名前順、番号順 SELECT EMPNO,EMPNAME FROM STUDENT ORDER BY 1,2 ASC;
<結果>
EMPNO | EMPNAME |
001 | AOKI TAROU |
002 | SATOU JIROU |
003 | SATOU SABUROU |
004 | YAMADA HANAKO |
列名を省略するにはSELECTの順序を指定します。
「SELECT EMPNO,EMPNAME」なので「ORDER BY EMPNO,EMPNAME」にする場合は「ORDER BY 1,2」とします。「ORDER BY EMPNAME,EMPNO」にする場合は「ORDER BY 2,1」とします。
ASC、DESCをつかって昇順・降順でソートすることができました。
以上、Oracleで昇順・降順でソートするASC、DESCの使い方でした。
コメント