Ini adalah "dengan desain"
SQL Server (atau RDBMS apa pun) tidak menjamin hasil yang dikembalikan dalam urutan tertentu jika tidak ada ORDER BY
klausa telah ditentukan. Beberapa orang berpikir bahwa baris selalu dikembalikan dalam urutan indeks berkerumun atau urutan disk fisik jika tidak ada urutan menurut klausa yang ditentukan. Namun, itu tidak benar karena ada banyak faktor yang dapat mengubah urutan baris selama pemrosesan kueri. Penggabungan HASH paralel adalah contoh yang baik untuk operator yang mengubah urutan baris.
Jika Anda menentukan ORDER BY
klausa, SQL Server akan mengurutkan baris dan mengembalikannya dalam urutan yang diminta. Namun, jika urutan tersebut tidak deterministik karena Anda memiliki nilai duplikat, dalam setiap "grup nilai" urutannya adalah "acak" untuk alasan yang sama yang disebutkan di atas.
Satu-satunya cara untuk menjamin urutan deterministik adalah dengan menyertakan kolom atau grup kolom unik yang dijamin (misalnya Kunci Utama) di ORDER BY
ayat.