SQLの ORDER BY句とは
ORDER BY句では実行結果をソート(並べ替え)することができます。
基本的な使用方法から、複数列を指定する場合も含めて解説いたします。
ORDER BYの基本的な使用方法
結果のソートは、SELECT文の末尾にORDER BY句を追加することで実現できます。
以下に一般的な構文を示します。
SELECT 列名1, 列名2, ...
FROM テーブル名
ORDER BY 列名 [ASC | DESC]
具体的な手順を説明します。
- SELECT文で取得する列名を指定します。複数の列を指定する場合はカンマで区切ります。
- FROM句で対象のテーブルを指定します。
- ORDER BY句を使用して、ソートする列名を指定します。ASCキーワードを使用すると昇順(小さい値から大きい値の順)、DESCキーワードを使用すると降順(大きい値から小さい値の順)でソートできます。
ORDER BY句の使用例
具体例は以下のような感じです。
-- usersテーブルを年齢の昇順でソートして取得する
SELECT * FROM users ORDER BY age ASC;
-- productsテーブルを価格の降順でソートして取得する
SELECT * FROM products ORDER BY price DESC;
上記の例では、usersテーブルのage列を昇順でソートし、productsテーブルのprice列を降順でソートしています。
SQLの ORDER BYで複数列を指定してソートする場合
複数の列を指定してソートする場合は、ORDER BY句に複数の列名をカンマで区切って指定します。最初に指定した列でソートし、同じ値の場合には次の列でソートされます。
以下に具体的な構文を示します。
SELECT 列名1, 列名2, ...
FROM テーブル名
ORDER BY 列名1 [ASC | DESC], 列名2 [ASC | DESC], ...
列名1で最初にソートされ、列名1が同じ値の場合には列名2でソートされます。
必要に応じてさらに列名を追加することもできます。
具体例は以下のような感じです。
-- usersテーブルを年齢の昇順でソートし、同じ年齢の場合は名前の昇順でソートする
SELECT * FROM users ORDER BY age ASC, name ASC
-- productsテーブルをカテゴリーの昇順でソートし、同じカテゴリーの場合は価格の降順でソートする
SELECT * FROM products ORDER BY category ASC, price DESC
上記の例では、usersテーブルをage列の昇順でソートし、同じ年齢の場合はname列の昇順でソートしています。また、productsテーブルをcategory列の昇順でソートし、同じカテゴリーの場合はprice列の降順でソートしています。
必要に応じて適切なテーブル名や列名を実際のデータベース構造に合わせて変更してください。
★豆情報
ORDER BYで指定するカラムは〇番目のカラムの数値で指定することもできます!
例えば一番目のカラムで昇順に並べ替えたい場合は
SELECT * FROM users ORDER BY 1 ASC
と記述することができます。
また、そのほかSQL関連記事をこちらにまとめておりますのでご参考ください。
> Coffee Tech Blog SQL関連記事
参考になれば幸いです☕
コメント