7.5。行のソート

7.5。行のソート
7.5。行のソート
(選択リストが処理された後)クエリが出力テーブルを生成した後には、必要に応じてすることができる  ソートすること。ソートが選択されていない場合、行は、不特定の順序で返されます。実際の順序  その場合は、スキャンに依存し、計画の種類とディスク上の順序に参加し、それが頼ってはいけないだろう  に。ソートステップが明示的に選択された場合に特定の出力順序はのみ保証されます。
クエリの実行後は、(選択リストの実装後の)出力テーブルをソートすることもできます。並べ替えを指定しない場合は、順不同で行を返します。オーダーの実際の戻り順序は、接続、検索および実装計画タイプとラインディスクに依存しますが、これは信頼できないようなものです。順序が明示的に指定されている場合、出力は、出力の順に確保することができるユニークです。
 
BY ORDER 句はソート順を指定します。
ORDER BY句は、ソート順を指定します。
 
SELECT SELECT_LIST
table_expression FROM
ORDER BY sort_expression1 [ASC | DESC] [NULLS {FIRST | LAST}]
[、sort_expression2 [ASC | DESC] [NULLS {FIRST |
LAST}] ...]
 
ソート式は問い合わせの選択リスト内で有効な任意の式を指定できます。例は  次のとおりです。
並べ替え式は、リスト内の任意の式を選択するために、クエリに適用することができます。例えば:
 
+ BでTABLE1のオーダーから、Bを選択して、C。
 
複数の式を指定した場合、後の値が等しいソート行に使用されている  以前の値に応じ。各式は、任意に続くことができる ASC または DESCは キーワード  昇順または降順にソート方向を設定します。 ASCの 順序がデフォルトです。注文プットを昇順  第より小さい値を、ここで「小さい」の用語で定義されている < 演算子。同様に、降順に  して決定される > 演算子。 
式複数の以前の値に応じて、指定され、次いで等しい値後で使用するの行をソートした場合。各式は、昇順または降順にソート方向を設定するためのオプションASCまたはDESCキーワードを続けることができました。デフォルトでは、ASCの順です。小さい方の値を「小」は<演算子に従って定義される最初の場所を、昇順。同様に、決定された下降>オペレータによる。
 
NULLS FIRST および NULLS LAST オプションは、ヌルが前に表示するかどうかを決定するために使用することができる  ソート順での非ヌル値または後。デフォルトでは、null値をソートnull以外のより大きいかのように  値。つまり、 NULLS FIRSTは 、デフォルトで DESCの 順序、および NULLS LAST そう。
NULLS FIRSTおよびNULLS LASTオプションの定義null以外の値の前にnullの場合、または並べ替え後。デフォルトでは、null値が言っていること、注文時にnull以外の値よりも大きい場合、ソートDESCで、NULL FIRSTがデフォルト動作であり、NULL LASTは、ASCのデフォルトの動作です。
 
順序オプションは、各ソート列に独立して考慮されることに注意してください。例示のために ORDER  Xで、Y DESCの 手段 ORDER BYはASC、Y DESC xは 同じではない、 ORDER BYが  DESC、Y DESCをxと
各ソート列のために、並べ替えオプションは個別に検討されることに注意してください。例えば、ORDER BYは、X、Y DESCは、ORDER BYはASC、Y DESCをxは示し、ORDER BYがDESC、Y DESCの別のxは。
 
ソート式は また、同様に、出力列の列ラベルまたは番号であり得ます。
ソート式の列ラベル又は例えば出力列数であってもよいです。
 
合計、合計でTABLE1のORDER FROM Cと+ bを選択します。
1 BY ORDER BY TABLE1グループから、MAX(B)を選択します。
 
どちらも最初の出力列によってソート。出力列名が一人で立っていることに注意してください、 それは式の中で使用することはできませんされて-たとえば、これは ありません 正しいです。
第1の実施形態に係る出力列です。言うことです。なお、出力列名なければならない唯一の出力列名、エクスプレッションを使用することはできません - 例えばの例を、以下のエラーです:
 
合計+ CでTABLE1の注文からAS和、C、B +を選択します。 - 違う
 
この制限は、曖昧さを減らすために行われます。場合曖昧はまだあり BY ORDER 項目は単純です  テーブル式の出力列名または列のいずれかに一致する可能性が名前。  出力列は、このような場合に使用されます。あなたが使用している場合にのみ、混乱を引き起こす AS 名前を変更するために  他のいくつかのテーブルの列の名前を一致させるために、出力列を。
この制限は、曖昧さを防ぐためです。しかし、ORDER BYのために、そのような名前を参照することができるように、出力列名は、列名テーブル式であってもよいし、あいまいなままです。この場合、出力列名を使用します。これは、同じ名前の出力列の名前を変更するが、ときに、他のテーブルと列の名前を気にしないASを使用する場合のみで、混乱を作成します。
 
ORDER BYは 結果に適用することができ UNION INTERSECT 、または EXCEPT 組み合わせが、中に  このような場合にのみ、出力列名または番号ではなく、表現によってによってソートに許可されています。
結果はINTERSECT、ORDER BY UNIONに適用又は除き、その後のみ、出力列名または番号に基づいて分類することができ、式を使用することはできませんすることができます。
公開された341元の記事 ウォン称賛54 ビュー880 000 +

おすすめ

転載: blog.csdn.net/ghostliming/article/details/104551539