【SQL Server】ASC・DESC で昇順・降順でソート

昇順・降順でソートするASC・DESC

SQL Serverで昇順・降順でソートするにはORDER BYでASC・DESCを使用します。

  • ASC・・・昇順(小さいもの順)
  • DESC・・・降順(大きいもの順)

サンプルデータ

empno empname
D001 KATOU
D002 YAMADA
D003 AOKI
D004 YAMADA

例1. 番号順(昇順)に表示するパターン

--番号順
SELECT * FROM student
 ORDER BY empno ASC;
empno empname
D001 KATOU
D002 YAMADA
D003 AOKI
D004 YAMADA

SQLでは昇順(若い順)はASCを使います。

--番号順(ASC省略)
SELECT * FROM student
 ORDER BY empno;
empno empname
D001 KATOU
D002 YAMADA
D003 AOKI
D004 YAMADA

ASCはデフォルト値なのでつけなくても構いません。

例2. 番号順(降順)に表示するパターン

--番号順(降順)
SELECT * FROM student
 ORDER BY empno DESC;
empno empname
D004 YAMADA
D003 AOKI
D002 YAMADA
D001 KATOU

「ORDER BY empno DESC」で降順に並べることができました。

例3. 名前順、番号順(昇順)に表示するパターン

--名前順、番号順
SELECT empno,empname FROM student
 ORDER BY empname,empno ASC;
empno empname
D003 AOKI
D001 KATOU
D002 YAMADA
D004 YAMADA

ここでは複数列の並び替えをしました。「ORDER BY empname,empno ASC」で名前順、番号順に並び替えました。

「empno」の後のASCは省略しています。「ORDER BY empname ASC,empno ASC」としても同じです。

名前を降順、番号を昇順にする場合は、「ORDER BY empname DESC,empno ASC」とします。

例4. 列名を省略するパターン

--名前順、番号順 
SELECT empno,empname FROM student
 ORDER BY 2,1 ASC;
empno empname
D003 AOKI
D001 KATOU
D002 YAMADA
D004 YAMADA

列名を省略するにはSELECTの順序を指定します。「SELECT EMPNO,EMPNAME」なので「EMPNO」→1,「EMPNAME」→2になります。

「ORDER BY EMPNAME,EMPNO」にする場合はORDER BY 2,1とします。

ASC・DESCをつかって昇順・降順でソートすることができました。

以上、SQL Serverで昇順・降順でソートするASC・DESCの使い方でした。

コメント