sql >> Database >  >> RDS >> Sqlserver

Als er geen 'Order by' is opgegeven, welke volgorde kiest een query dan voor uw recordset?

Als u geen ORDER BY opgeeft , dan is er GEEN BESTELLING gedefinieerd.

De resultaten kunnen in een willekeurige volgorde worden geretourneerd - en dat kan in de loop van de tijd ook veranderen.

Er is geen "natuurlijke orde" of iets dergelijks in een relationele database (tenminste in alles wat ik weet). De enige manier om een ​​betrouwbare bestelling te krijgen is door expliciet specificeren van een ORDER BY clausule.

Bijwerken: voor degenen die me nog steeds niet geloven - hier zijn twee uitstekende blogposts die dit punt illustreren (met codevoorbeelden!):

  • Conor Cunningham (architect van het Core SQL Server Engine-team):geen veiligheidsgordel - verwacht bestelling zonder BESTELLEN BY
  • Alexander Kuznetsov:zonder ORDER BY is er geen standaard sorteervolgorde (post in het webarchief)


  1. Een tabel maken met een externe sleutel in SQL

  2. Gids voor het ontwerpen van een database voor RBAC in MySQL

  3. Alles wat u moet weten over de LIKE-operator in SQL

  4. Hoe veel rijen samen te voegen met dezelfde id in sql?