SQL ORDER BY
ORDER BYキーワードは、結果セットを昇順または降順に並べ替えるために使用されます。
例
価格で商品を並べ替えます:
SELECT * FROM Products
ORDER BY Price;
構文
SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... ASC|DESC;
デモデータベース
以下は例で使用される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 |
DESC
ORDER BYキーワードはデフォルトでレコードを昇順に並べ替えます。レコードを降順に並べ替えるには、DESCキーワードを使用します。
例
商品を価格の高い順に並べ替えます:
SELECT * FROM Products
ORDER BY Price DESC;
アルファベット順
文字列値の場合、ORDER BYキーワードはアルファベット順に並べ替えます:
例
商品をProductNameでアルファベット順に並べ替えます:
SELECT * FROM Products
ORDER BY ProductName;
アルファベット順の降順
テーブルを逆アルファベット順に並べ替えるには、DESCキーワードを使用します:
例
商品をProductNameで逆順に並べ替えます:
SELECT * FROM Products
ORDER BY ProductName DESC;
複数列でのORDER BY
次のSQL文は、”Customers”テーブルのすべての顧客を、”Country”および”CustomerName”列で並べ替えて選択します。これは、Countryで並べ替え、同じCountryを持つ行がある場合はCustomerNameで並べ替えます:
例
SELECT * FROM Customers
ORDER BY Country, CustomerName;
ASCとDESCの両方を使用
次のSQL文は、”Customers”テーブルのすべての顧客を、”Country”で昇順に、”CustomerName”で降順に並べ替えて選択します:
例
SELECT * FROM Customers
ORDER BY Country ASC, CustomerName DESC;