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は問い合せを行った結果のデータを並べ替えるときに使用します。

このときASC(昇順 : 小さい順)またはDESC(降順 : 大きい順)キーワードを指定しますが、ASCキーワードはデフォルトであるため省略可能です。

また、複数のデータ項目に対して並べ替えを行う場合には並べ替える列名を「,(カンマ)」区切りで指定します。

並べ替えの順序はORDER BYで指定した最初の列から順次並べ替えが行われ、列データに同一の値がある場合には次の列データを比較した並べ替えが行われます。


ORDER BYでのNULLはデータベースのソフトウェア製品によって扱いが異なるので注意しましょう。
SQL Server, MySQL, Accessでは最も小さい値として扱われる。
Oracle, Db2, PostgreSQLでは最も大きい値として扱われる。


関連キーワード





SQL実行例の説明(1)

・T1_SAMPLE表からB1_CODEで並べ替え(昇順)をしたデータを取得します。


SELECT * FROM T1_SAMPLE
ORDER BY B1_CODE;


SQL実行の結果(1-1)

IDB1_CODESALEBONUS
10010123010 1005.0
10010223010 5205.8
10010333020 2505.1
1001044701010007.4
1001050103018007.8
SQL Result
IDB1_CODESALEBONUS
1001050103018007.8
10010123010 1005.0
10010223010 5205.8
10010333020 2505.1
1001044701010007.4



SQL実行例の説明(2)

・T1_SAMPLE表からB1_CODEで並べ替え(昇順)の後、SALEで並べ替え(降順)をしたデータを取得します。


SELECT * FROM T1_SAMPLE
ORDER BY B1_CODE, SALE DESC;


SQL実行の結果(2-1)

IDB1_CODESALEBONUS
10010123010 1005.0
10010223010 5205.8
10010333020 2505.1
1001044701010007.4
1001050103018007.8
SQL Result
IDB1_CODESALEBONUS
1001050103018007.8
10010223010 5205.8
10010123010 1005.0
10010333020 2505.1
1001044701010007.4