Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jeśli nie określono opcji „Kolejność według”, jaką kolejność wybiera zapytanie dla zestawu rekordów?

Jeśli nie określisz ORDER BY , to jest BRAK ZAMÓWIENIA zdefiniowane.

Wyniki mogą być zwracane w dowolnej kolejności – co również może się zmieniać z czasem.

W relacyjnej bazie danych nie ma „naturalnego porządku” ani niczego podobnego (przynajmniej we wszystkim, o czym wiem). Jedynym sposobem na uzyskanie wiarygodnego zamówienia jest wyraźnie określenie ORDER BY klauzula.

Aktualizacja: dla tych, którzy wciąż mi nie wierzą - oto dwa doskonałe posty na blogu, które ilustrują ten punkt (z przykładami kodu!):

  • Conor Cunningham (architekt w zespole Core SQL Server Engine):Brak pasów bezpieczeństwa – oczekiwanie zamówienia bez ORDER BY
  • Aleksander Kuzniecow:Bez ORDER BY nie ma domyślnego porządku sortowania (post w archiwum internetowym)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wyświetlić klucz podstawowy tabeli SQL Server?

  2. Automatyczne usuwanie zablokowanych procesów w MS SQL Server

  3. 32-bitowy program Excel i 64-bitowy serwer SQL

  4. Projekt bazy danych dla ustawień użytkownika

  5. SQL Server Typ tekstowy a typ danych varchar