特に指定しないかぎり、データベースサーバは、テーブルのローを意味のない順序で返します。テーブルのローは、多くの場合、意味のある順序にした方が便利です。たとえば、製品をアルファベット順に見たいとします。
SELECT 文の末尾に ORDER BY 句を追加して、結果セットのローの順序を指定します。この SELECT 文の構文は、次のとおりです。
SELECT column-name-1, column-name-2,... FROM table-name ORDER BY order-by-column-name
column-name-1、column-name-2、table-name を、問い合わせるカラムとテーブルの名前に置き換えてください。order-by-column-name はテーブルのカラムです。テーブルのすべてのカラムを表す省略形としてアスタリスクを使用できます。
句の順序が重要 ORDER BY 句は、FROM 句と SELECT 句の後に指定してください。
昇順または降順を指定できる デフォルトの順序は昇順です。次のクエリのように句の末尾にキーワード DESC を追加すると、降順を指定できます。
SELECT ID, Quantity FROM Products ORDER BY Quantity DESC; |
ID | Quantity |
---|---|
400 | 112 |
700 | 80 |
302 | 75 |
301 | 54 |
600 | 39 |
... | ... |
複数のカラム順に順序を設定できる 次のクエリは、最初にサイズ順 (アルファベット順)、次に名前順にソートします。
SELECT ID, Name, Size FROM Products ORDER BY Size, Name; |
ID | Name | Size |
---|---|---|
600 | Sweatshirt | Large |
601 | Sweatshirt | Large |
700 | Shorts | Medium |
301 | Tee Shirt | Medium |
... | ... | ... |
ORDER BY カラムが SELECT リストになくてもよい 次のクエリは、価格が結果セットになくても、製品を単価順にソートします。
SELECT ID, Name, Size FROM Products ORDER BY UnitPrice; |
ID | Name | Size |
---|---|---|
500 | Visor | One size fits all |
501 | Visor | One size fits all |
300 | Tee Shirt | Small |
400 | Baseball Cap | One size fits all |
... | ... | ... |
ORDER BY 句を使用せず、クエリを複数回実行すると、異なる結果が表示される可能性がある この理由は、SQL Anywhere が同じ結果セットを異なる順序で返す可能性があるためです。ORDER BY 句がない場合は、SQL Anywhere が最も効率のよい順序でローを返します。これは、結果セットの提示が、最後にアクセスしたローとその他の要因によって変化する可能性があることを意味します。特定の順序でローが返されるようにする唯一の方法は ORDER BY を使用することです。
Interactive SQL で次の文を実行して、製品をアルファベット順にリストします。
SELECT ID, Name, Description FROM Products ORDER BY Name; |
ID | Name | Description |
---|---|---|
400 | Baseball Cap | Cotton Cap |
401 | Baseball Cap | Wool cap |
700 | Shorts | Cotton Shorts |
600 | Sweatshirt | Hooded Sweatshirt |
... | ... | ... |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |