Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL の使用法 » データのクエリと変更 » クエリ結果の要約、グループ化、ソート

 

ORDER BY 句:クエリ結果のソート

ORDER BY 句によって、クエリ結果を 1 つ以上のカラムでソートできます。それぞれのソートは、昇順 (ASC) でも降順 (DESC) でも可能です。どちらも指定されていない場合は、ASC が使用されます。

簡単な例

次のクエリは、name 順に結果を返します。

SELECT ID, Name
   FROM Products
   ORDER BY Name;
ID Name
400 Baseball Cap
401 Baseball Cap
700 Shorts
600 Sweatshirt
... ...
2 つ以上のカラムでのソート

ORDER BY 句で 2 つ以上のカラムを指定すると、ソートはネストされます。

次の文は、Products テーブルにある shirt を、name カラムで昇順ソートしてから、各 name の Quantity カラムで (降順) ソートします。

SELECT ID, Name, Quantity
   FROM Products
   WHERE Name like '%shirt%'
   ORDER BY Name, Quantity DESC;
ID Name Quantity
600 Sweatshirt 39
601 Sweatshirt 32
302 Tee Shirt 75
301 Tee Shirt 54
... ... ...
カラム位置の使用

カラム名のかわりに、select リストの中のカラムの位置番号を使用できます。カラム名と select リスト番号は混在できます。次の文は両方とも、前述の文と同じ結果を生成します。

SELECT ID, Name, Quantity
   FROM Products
   WHERE Name like '%shirt%'
   ORDER BY 2, 3 DESC;
SELECT ID, Name, Quantity
   FROM Products
   WHERE Name like '%shirt%'
   ORDER BY 2, Quantity DESC

SQL のほとんどのバージョンでは、select リストに ORDER BY 項目があることが必須ですが、SQL Anywhere にはそのような制限はありません。次のクエリでは、select リストに Quantity カラムがありませんが、Quantity 順に結果をソートします。

SELECT ID, Name
   FROM Products
   WHERE Name like '%shirt%'
   ORDER BY 2, Quantity DESC;
ORDER BY と NULL

ORDER BY では、ソート順が昇順の場合、NULL は他のすべての値の前に来ます。

ORDER BY と大文字と小文字の区別

大文字と小文字が混在するデータに対する ORDER BY 句の影響は、データベースの作成時に指定された、データベース照合順と大文字と小文字の区別によって異なります。


クエリが返すロー数を明示的に制限する
ORDER BY と GROUP BY