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 句:結果の順序付け

特に指定しないかぎり、データベース・サーバは、テーブルのローを意味のない順序で返します。テーブルのローは、多くの場合、意味のある順序にした方が便利です。たとえば、製品をアルファベット順に見たいとします。

SELECT 文の末尾に ORDER BY 句を追加して、結果セットのローの順序を指定します。この SELECT 文の構文は、次のとおりです。

SELECT column-name-1, column-name-2,...
FROM table-name
ORDER BY order-by-column-name

column-name-1column-name-2table-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 を使用することです。


インデックスの使用による ORDER BY のパフォーマンス改善