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)
ID | B1_CODE | SALE | BONUS |
---|---|---|---|
100101 | 23010 | 100 | 5.0 |
100102 | 23010 | 520 | 5.8 |
100103 | 33020 | 250 | 5.1 |
100104 | 47010 | 1000 | 7.4 |
100105 | 01030 | 1800 | 7.8 |
ID | B1_CODE | SALE | BONUS |
---|---|---|---|
100105 | 01030 | 1800 | 7.8 |
100101 | 23010 | 100 | 5.0 |
100102 | 23010 | 520 | 5.8 |
100103 | 33020 | 250 | 5.1 |
100104 | 47010 | 1000 | 7.4 |
SQL実行例の説明(2)
・T1_SAMPLE表からB1_CODEで並べ替え(昇順)の後、SALEで並べ替え(降順)をしたデータを取得します。
SELECT * FROM T1_SAMPLE
ORDER BY B1_CODE, SALE DESC;
SQL実行の結果(2-1)
ID | B1_CODE | SALE | BONUS |
---|---|---|---|
100101 | 23010 | 100 | 5.0 |
100102 | 23010 | 520 | 5.8 |
100103 | 33020 | 250 | 5.1 |
100104 | 47010 | 1000 | 7.4 |
100105 | 01030 | 1800 | 7.8 |
ID | B1_CODE | SALE | BONUS |
---|---|---|---|
100105 | 01030 | 1800 | 7.8 |
100102 | 23010 | 520 | 5.8 |
100101 | 23010 | 100 | 5.0 |
100103 | 33020 | 250 | 5.1 |
100104 | 47010 | 1000 | 7.4 |