sql >> データベース >  >> RDS >> Sqlserver

OrderBy句は、同じデータを持つorder列の場合、異なる結果セットになります

    これは「設計による」

    SQL Server(または任意のRDBMS)は、ORDER BYがない場合、結果が特定の順序で返されることを保証しません。 句が指定されました。 order by句が指定されていない場合、行は常にクラスター化インデックス順または物理ディスク順で返されると考える人もいます。ただし、クエリ処理中に行の順序を変更する可能性のある多くの要因があるため、これは正しくありません。並列ハッシュ結合は、行の順序を変更する演算子の良い例です。

    ORDER BYを指定した場合 句を指定すると、SQL Serverは行を並べ替えて、要求された順序で返します。ただし、値が重複しているためにその順序が決定論的でない場合、各「値グループ」内では、上記と同じ理由で順序は「ランダム」になります。

    決定論的な順序を保証する唯一の方法は、保証された一意の列または列グループ(たとえば、主キー)をORDER BYに含めることです。 句。



    1. 複数のテーブルから複数の列を選択する

    2. mysql-from句で更新するターゲットテーブルを指定できません

    3. Codeigniterのフォーマット済みクエリを元のMysqlクエリに変換する方法(例:$ this-> db-> select('table1。*、table2。*、table3。*'))

    4. バージョンdjango-mpttをアップグレードした後、なぜこのデータベース移行エラーが発生するのですか?