ORDER BY 句 - AWS Clean Rooms

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ORDER BY 句

ORDER BY 句は、クエリの結果セットをソートします。

注記

最も外側の ORDER BY 式には、SELECT リストにある列だけが含まれている必要があります。

構文

[ ORDER BY expression [ ASC | DESC ] ] [ NULLS FIRST | NULLS LAST ] [ LIMIT { count | ALL } ] [ OFFSET start ]

パラメータ

expression

クエリ結果のソート順序を定義する式。SELECT リストの 1 つ以上の列から構成されています。結果は、バイナリ UTF-8 順序付けに基づいて返されます。以下を指定することもできます。

  • SELECT リストエントリの位置 (SELECT リストが存在しない場合は、テーブルの列の位置) を表す序数

  • SELECT リストエントリを定義するエイリアス

ORDER BY 句に複数の式が含まれる場合、結果セットは、最初の式に従ってソートされ、次の最初の式の値と一致する値を持つ行に 2 番目の式が適用されます。以降同様の処理が行われます。

ASC | DESC

次のように、式のソート順を定義するオプション:

  • ASC: 昇順 (数値の場合は低から高、文字列の場合は「A」から「Z」など) オプションを指定しない場合、データはデフォルトでは昇順にソートされます。

  • DESC: 降順 (数値の場合は高から低、文字列の場合は「Z」から「A」)。

NULLS FIRST | NULLS LAST

NULL 値を NULL 以外の値より先に順序付けするか、NULL 以外の値の後に順序付けするかを指定するオプション。デフォルトでは、NULL 値は昇順ではソートされて最後にランク付けされ、降順ではソートされて最初にランク付けされます。

LIMIT number | ALL

クエリが返すソート済みの行数を制御するオプション。LIMIT 数は正の整数でなければなりません。最大値は 2147483647 です。

LIMIT 0 は行を返しません。この構文は、(行を表示せずに) クエリが実行されているかを確認したり、テーブルから列リストを返すためのテスト目的で使用できます。列リストを返すために LIMIT 0 を使用した場合、ORDER BY 句は重複です。デフォルトは LIMIT ALL です。

OFFSET start

行を返す前に、start の前の行数をスキップするよう指定するオプション。OFFSET 数は正の整数でなければなりません。最大値は 2147483647 です。LIMIT オプションを合わせて使用すると、OFFSET 行は、返される LIMIT 行のカウントを開始する前にスキップされます。LIMIT オプションを使用しない場合、結果セット内の行の数が、スキップされる行の数だけ少なくなります。OFFSET 句によってスキップされた行もスキャンされる必要はあるため、大きい OFFSET 値を使用することは一般的に非効率的です。

使用に関する注意事項

ORDER BY 句を使用すると、次の動作が予想されます。

  • ヌル値は他のすべての値よりも「高い」と見なされます。デフォルトの昇順のソートでは、NULL 値は最後に表示されます。この動作を変更するには、NULLS FIRST オプションを使用します。

  • クエリに ORDER BY 句が含まれていない場合、結果行が返す行の順番は予想不能です。同じクエリを 2 回実行した場合に、結果セットが返される順番が異なることがあります。

  • LIMIT オプションと OFFSET オプションは、ORDER BY 句なしに使用できます。ただし、整合性のある行セットを返すには、これらのオプションを ORDER BY と組み合わせて使用してください。

  • のような並列システムでは AWS Clean Rooms、ORDER BY が一意の順序を生成しない場合、行の順序は不確定になります。つまり、ORDER BY 式が重複した値を生成する場合、それらの行の戻り値の順序は、他のシステムと異なるか、 の 1 つの実行から次の実行 AWS Clean Rooms と異なる場合があります。

  • AWS Clean Rooms は、ORDER BY 句の文字列リテラルをサポートしていません。