これは「設計による」
SQL Server(または任意のRDBMS)は、ORDER BY
がない場合、結果が特定の順序で返されることを保証しません。 句が指定されました。 order by句が指定されていない場合、行は常にクラスター化インデックス順または物理ディスク順で返されると考える人もいます。ただし、クエリ処理中に行の順序を変更する可能性のある多くの要因があるため、これは正しくありません。並列ハッシュ結合は、行の順序を変更する演算子の良い例です。
ORDER BY
を指定した場合 句を指定すると、SQL Serverは行を並べ替えて、要求された順序で返します。ただし、値が重複しているためにその順序が決定論的でない場合、各「値グループ」内では、上記と同じ理由で順序は「ランダム」になります。
決定論的な順序を保証する唯一の方法は、保証された一意の列または列グループ(たとえば、主キー)をORDER BY
に含めることです。 句。