SQL ORDER BY キーワード
1. SQL ORDER BY とは
ORDER BY キーワードは、リザルトセット(検索結果)を昇順または降順でソート(並び替え)するために使用されます。
ORDER BY キーワードは、デフォルトで昇順 (ASC) にソートされます。
1.1 実行例
製品(Products)を価格が低い順から高い順にソートします。
/* 価格の安い順(昇順)に製品をソート */
SELECT * FROM Products
ORDER BY Price;2. ORDER BY の構文
SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... ASC|DESC;3. デモ用データベース
以下は、例題で使用する Products テーブルの抜粋です。
| ProductID | ProductName | SupplierID | CategoryID | Unit | Price |
|---|---|---|---|---|---|
| 1 | Chais | 1 | 1 | 10 boxes x 20 bags | 18 |
| 2 | Chang | 1 | 1 | 24 - 12 oz bottles | 19 |
| 3 | Aniseed Syrup | 1 | 2 | 12 - 550 ml bottles | 10 |
| 4 | Chef Anton's Cajun Seasoning | 2 | 2 | 48 - 6 oz jars | 22 |
| 5 | Chef Anton's Gumbo Mix | 2 | 2 | 36 boxes | 21.35 |
4. 降順でのソート (ORDER BY DESC)
レコードを降順(大きい順)にソートするには、DESC キーワードを使用します。
4.1 実行例
製品を価格が高い順から低い順にソートします。
/* 価格の高い順(降順)に製品をソート */
SELECT * FROM Products
ORDER BY Price DESC;5. アルファベット順でのソート
ストリング(文字列)型の値に対して ORDER BY キーワードを使用すると、カラムの値をアルファベット順にソートします。
5.1 実行例
ProductName カラムをアルファベット順にソートします。
/* 製品名をアルファベット順(昇順)にソート */
SELECT * FROM Products
ORDER BY ProductName;6. アルファベットの逆順でのソート (DESC)
文字列カラムの値を降順(アルファベットの逆順)でソートするには、同じく DESC キーワードを使用します。
6.1 実行例
ProductName カラムをアルファベットの逆順でソートします。
/* 製品名をアルファベットの逆順(降順)にソート */
SELECT * FROM Products
ORDER BY ProductName DESC;7. 複数カラムによるソート
以下の SQL ステートメントは、"Customers" テーブルからすべての顧客を選択し、"Country"(国)と "CustomerName"(顧客名)のカラムでソートします。
これは、まず Country でソートされ、いくつかのレコードで Country が同じ場合に、それらのレコードを CustomerName でソートすることを意味します。
7.1 実行例
/* 国名でソートし、同じ国の中ではさらに顧客名でソート */
SELECT * FROM Customers
ORDER BY Country, CustomerName;8. ASC と DESC の組み合わせ
以下の SQL ステートメントは、"Customers" テーブルからすべての顧客を選択し、"Country" を昇順、"CustomerName" を降順でソートします。
8.1 実行例
/* 国名を昇順、顧客名を降順で組み合わせてソート */
SELECT * FROM Customers
ORDER BY Country ASC, CustomerName DESC;