sql >> Databasteknik >  >> RDS >> Sqlserver

När ingen 'Beställ efter' är angiven, vilken ordning väljer en fråga för din postuppsättning?

Om du inte anger en ORDER BY , då finns det INGEN BESTÄLLNING definieras.

Resultaten kan returneras i en godtycklig ordning - och det kan också ändras med tiden.

Det finns ingen "naturlig ordning" eller något liknande i en relationsdatabas (åtminstone i allt jag känner till). Det enda sättet att få en pålitlig beställning är genom att uttryckligen ange en ORDER BY klausul.

Uppdatering: för de som fortfarande inte tror mig - här är två utmärkta blogginlägg som illustrerar detta (med kodexempel!) :

  • Conor Cunningham (arkitekt i Core SQL Server Engine-teamet):Inget säkerhetsbälte - förväntar sig beställning utan BESTÄLLNING AV
  • Alexander Kuznetsov:Utan ORDER BY finns det ingen standardsorteringsordning (lägg upp i webbarkivet)


  1. SQLite DATEADD() Ekvivalent

  2. Kolumnnamn eller antal angivna värden matchar inte tabelldefinitionen

  3. Hur man listar tabell främmande nycklar

  4. Hämta kommentarer från en PostgreSQL DB