【Oracle】昇順・降順でソートするOrder By ASC、DESC【SQL】

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の使い方でした。

コメント