SQL 速習チュートリアル

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 テーブルの抜粋です。

ProductIDProductNameSupplierIDCategoryIDUnitPrice
1Chais1110 boxes x 20 bags18
2Chang1124 - 12 oz bottles19
3Aniseed Syrup1212 - 550 ml bottles10
4Chef Anton's Cajun Seasoning2248 - 6 oz jars22
5Chef Anton's Gumbo Mix2236 boxes21.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;