ORDER BY - 問い合せ結果の並び順を指定する -

SQL-92/99   Oracle DB2 SQL Server MySQL PostgreSQL Access

SELECT ...
FROM ...
ORDER BY 列名1 [ ASC | DESC ], 列名2 [ ASC | DESC ] ...


Oracle

SELECT ...
FROM ...
ORDER BY 列名1 [ ASC | DESC ] [ NULLS FIRST | NULLS LAST ], 列名2 ...


マーク ORDER BY 句での NULL は、DBMS 製品によって扱いが異なります。
 ・SQL Server / MySQL / Access ・・・ 最も小さい値として扱われる。
 ・Oracle / DB2 / PostgreSQL ・・・ 最も大きい値として扱われる。
  * Oracle 9i 以降では、NULL の扱いを指定することができます。

 ORDER BY 句は、問い合せを行った結果のデータを並べ替えるときに使用します。 このとき、ASC(昇順 : 小さい順)または DESC(降順 : 大きい順)キーワードを指定できますが、ASC キーワードはデフォルトであるため省略可能です。

-- 【説明】
-- 次の SQL 文は、「T_01_3」表の「B1_CODE」列で並べ替え(昇順)をしたデータを取得します。

SELECT * FROM T_01_3
 ORDER BY B1_CODE;


IDB1_CODESALEBONUS
1001050103018007.8
10010123010 1005.0
10010223010 5205.8
10010333020 2505.1
1001044701010007.4

 ORDER BY 句では、複数のデータ項目に対して並べ替えを行う場合には、並べ替える列名を「,(カンマ)」区切りで指定します。 このとき、並べ替えの順序は、ORDER BY 句で指定した最初の列から順次、並べ替えが行われます。 また、列データに同一の値がある場合には、次の列データを比較した結果、並べ替えが行われます。

-- 【説明】
-- 次の SQL 文は、「T_01_3」表の「B1_CODE」列で並べ替え(昇順)の後、「SALE」列で並べ替え(降順)をしたデータを取得します。

SELECT * FROM T_01_3
 ORDER BY B1_CODE, SALE DESC;


IDB1_CODESALEBONUS
1001050103018007.8
10010223010 5205.8
10010123010 1005.0
10010333020 2505.1
1001044701010007.4

参考表

T_01_3

IDB1_CODESALEBONUS
10010123010 1005.0
10010223010 5205.8
10010333020 2505.1
1001044701010007.4
1001050103018007.8