問合せ結果のソート

問合せで選択された行を並べ替えるには、ORDER BY句を使用します。位置のソートは次のような場合に有効です。

  • selectリストの式が長い場合に並べ替えを行うには、式全体を繰り返すかわりにORDER BY句で位置を指定できます。

  • 集合演算子UNIONINTERSECTMINUSまたはUNION ALLを含む複合問合せでは、ORDER BY句に明示的な式ではなく、位置または別名を指定する必要があります。また、ORDER BY句は最後のコンポーネント問合せでのみ使用できます。ORDER BY句は、複合問合せ全体で返されたすべての行の並べ替えを行います。

Oracle DatabaseがORDER BY句の文字値をソートする順序付け方法は、照合とも呼ばれ、照合導出ルールを使用してORDER BY句式ごとに個別に決定されます。

式に対して決定されている照合が照合BINARYでない場合、文字値は言語的に比較されます。この場合、最初に照合キーに変換されてから、RAW値のように比較されます。照合キーは、SQLファンクションNLSSORTで使用されるものと同じメソッドを使用して暗黙的に生成されます。生成される照合キーには、「NLSSORT」で説明されているものと同じ制限事項があります。これらの制限の結果、初期化パラメータMAX_STRING_SIZESTANDARDに設定されている場合、照合キーの生成に使用された接頭辞が異なっていなければ、残りの値が異なる場合でも、2つの値は言語的に等しいと比較されることがあります。パラメータの値がEXTENDEDの場合、特定の状況下でエラー"ORA-12742: unable to create the collation key"が報告されることがあります。制限事項の詳細は、次のリンクを参照してください。