SQL 解説書

ORDER BY 文節

               .-,--------------------.
               V            .-ASC--.  |
>>-ORDER BY-------sort-key--+------+--+------------------------><
                            '-DESC-'
 
 sort-key
 
|---+-simple-column-name--+-------------------------------------|
    +-simple-integer------+
    '-sort-key-expression-'
 

ORDER BY 文節は、結果表の行の順序を指定します。 単一の分類指定 (方向が関連した 1 つの sort-key (分類キー)) が指定された場合、 行は、その分類指定の値によって順序付けられます。 複数の分類指定を指定すると、行の順序は、最初に指定された分類指定の値によって分類され、 次に 2 番目に指定された分類指定の値によって分類されます。 各分類キー の長さ属性は、 文字列の場合は 255 文字以下、漢字列の場合は 127 文字以下でなければならず (SQLSTATE 42907)、 データ・タイプを LONG VARCHAR、LONG VARGRAPHIC、BLOB、CLOB、DBCLOB、DATALINK にしたり、 それらのタイプのいずれかを基にした特殊タイプ、 または構造タイプにすることもできません (SQLSTATE 42907)。

選択リストに指定された列は、 simple-integer または simple-column-name である分類キー によって 識別することができます。 選択リストに指定されていない列は、simple-integer、 もしくは場合によっては、 選択リストの式と一致する sort-key-expression (sort-key-expression の詳細を参照) によって 識別されなければなりません。 列は、AS 文節の指定がなく、しかもその列が定数、 演算子を含む式、または関数から派生した列の場合には無名です。 54

順序付けは、"言語要素" で説明した比較規則に従って行われます。 ヌル値は、他のどのような値よりも高位として扱われます。 ORDER BY 文節で行が完全に順序付けされない場合、 指定されたすべての列の値が重複する複数の行は、任意の順序で表示されます。

simple-column-name
通常、結果表の列を識別します。 この場合、simple-column-name (単純列名) は、 選択リストに指定された列の列名でなければなりません。

また、照会が副選択である場合、simple-column-name として、 FROM 文節で識別される表、視点、またはネストされた表の列名も指定することができます。 副選択が以下の場合は、エラーが生じます。

結果の順序付けにどの列を使用するかの決定については、 「分類キーの列名」で説明されています (注意 を参照)。

simple-integer
0 より大きく、結果表の列の数以下でなければなりません (SQLSTATE 42805)。 整数 n は、結果表の n 番目の列を指定します。

sort-key-expression
単なる列名または無符号の整数定数ではない式。 順序付けが適用される照会は、 この形式の分類キーを使用するためには副選択 でなければなりません。 sort-key-expression (分類キー式) には、 相関スカラー全選択 (SQLSTATE 42703)、 または外部処理を伴う関数 (SQLSTATE 42845) を含めることはできません。

分類キー式 内の列名は、 「分類キーの列名」(注意 を参照) で説明されている規則に従っていなければなりません。

指定可能な式にさらに制約が加わる特殊な場合があります。

ASC
列の値を昇順に使用します。 これはデフォルト値です。

DESC
列の値を降順に使用します。

注意


脚注:

54
セット演算子 (UNION、INTERSECT、 または EXCEPT) を伴う全選択の結果列の名前を判別する規則については、 全選択を参照してください。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]