Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Klausa OrderBy menghasilkan set hasil yang berbeda ketika kolom pesanan memiliki data yang sama

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PARSE() vs TRY_PARSE() di SQL Server:Apa Bedanya?

  2. Pivot Beberapa Kolom di T-SQL

  3. Buat file database SQL Server CE secara terprogram

  4. 2 Cara Mengembalikan Daftar Pemicu di Database SQL Server menggunakan T-SQL

  5. 4 Tips untuk Menjalankan Diagnostik SQL Server