.-,--------------------. 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 として、 FROM 文節で識別される表、視点、またはネストされた表の列名も指定することができます。 副選択が以下の場合は、エラーが生じます。
結果の順序付けにどの列を使用するかの決定については、 「分類キーの列名」で説明されています (注意 を参照)。
分類キー式 内の列名は、 「分類キーの列名」(注意 を参照) で説明されている規則に従っていなければなりません。
指定可能な式にさらに制約が加わる特殊な場合があります。
分類キー式は、副選択の選択リスト内の式と完全に一致しなければなりません (スカラー全選択は一致しません)。
分類キー式は以下が可能です。
照会は副選択 でなければなりません (SQLSTATE 42877)。 列名は、副選択の FROM 文節の表、視点、 またはネストされた表の列を明確に識別する必要があります (SQLSTATE 42702)。 列の値は、分類指定の値を計算するのに使用されます。
列名が結果表の複数の列の名前と同一である場合、 この列名は、順序付け副選択の FROM 文節内の表、視点、 またはネストされた表の列を明確に識別する必要があります (SQLSTATE 42702)。 列名が 1 つの列と同一である場合、その列は、分類指定の値を計算するのに使用されます。 列名が結果表の列と同一でない場合、 この列名は、選択ステートメントの全選択の FROM 文節の表、視点、 またはネストされた表の列を明確に識別する必要があります (SQLSTATE 42702)。
列名は、結果表の複数の列の名前と同一にすることはできません (SQLSTATE 42702)。 列名は、結果表のちょうど 1 つの列と同一でなければなりません (SQLSTATE 42707)。 この列は、分類指定の値を計算するのに使用されます。