問合せ結果のソート
問合せで選択された行を並べ替えるには、ORDER
BY
句を使用します。位置のソートは次のような場合に有効です。
-
selectリストの式が長い場合に並べ替えを行うには、式全体を繰り返すかわりに
ORDER
BY
句で位置を指定できます。 -
集合演算子
UNION
、INTERSECT
、MINUS
またはUNION
ALL
を含む複合問合せでは、ORDER
BY
句に明示的な式ではなく、位置または別名を指定する必要があります。また、ORDER
BY
句は最後のコンポーネント問合せでのみ使用できます。ORDER
BY
句は、複合問合せ全体で返されたすべての行の並べ替えを行います。
Oracle DatabaseがORDER BY
句の文字値をソートする順序付け方法は、照合とも呼ばれ、照合導出ルールを使用してORDER BY
句式ごとに個別に決定されます。
式に対して決定されている照合が照合BINARY
でない場合、文字値は言語的に比較されます。この場合、最初に照合キーに変換されてから、RAW
値のように比較されます。照合キーは、SQLファンクションNLSSORT
で使用されるものと同じメソッドを使用して暗黙的に生成されます。生成される照合キーには、「NLSSORT
」で説明されているものと同じ制限事項があります。これらの制限の結果、初期化パラメータMAX_STRING_SIZE
がSTANDARD
に設定されている場合、照合キーの生成に使用された接頭辞が異なっていなければ、残りの値が異なる場合でも、2つの値は言語的に等しいと比較されることがあります。パラメータの値がEXTENDED
の場合、特定の状況下でエラー"ORA-12742: unable to create the collation key
"が報告されることがあります。制限事項の詳細は、次のリンクを参照してください。