Sortera efter
En ORDER BY-
sats i SQL anger att en SQL SELECT-
sats returnerar en resultatuppsättning där raderna sorteras efter värdena i en eller flera kolumner. Sorteringskriterierna behöver inte inkluderas i resultatuppsättningen. Sorteringskriterierna kan vara uttryck, inklusive kolumnnamn, användardefinierade funktioner , aritmetiska operationer eller CASE
-uttryck. Uttrycken utvärderas och resultaten används för sorteringen, dvs värdena lagrade i kolumnen eller resultaten av funktionsanropet.
ORDER BY
är det enda sättet att sortera raderna i resultatuppsättningen. Utan denna klausul relationsdatabassystemet returnera raderna i valfri ordning. Om en beställning krävs ORDER BY
anges i SELECT
-uttrycket som skickas av applikationen. Även om vissa databassystem tillåter specifikation av en ORDER BY
-sats i underval eller vydefinitioner , har närvaron där ingen effekt. En vy är en logisk relationstabell, och relationsmodellen kräver att en tabell är en uppsättning rader, vilket inte innebär någon som helst sorteringsordning. Det enda undantaget är konstruktioner som ORDER BY ORDER OF ...
(inte standardiserat i SQL:2003 ) som tillåter spridning av sorteringskriterier genom kapslade underval.
SQL-standardens kärnfunktionalitet definierar inte explicit en standardsorteringsordning för Nulls . Med SQL:2003- tillägget T611, "Elementary OLAP operations", kan nollor sorteras före eller efter alla datavärden genom att använda NULLS FIRST
eller NULLS LAST
satserna i ORDER BY-
listan, respektive. Det är dock inte alla DBMS-leverantörer som implementerar denna funktionalitet. Leverantörer som inte implementerar denna funktionalitet kan ange olika behandlingar för nollsortering i DBMS.
Struktur ORDER BY ... DESC
kommer att ordna i fallande ordning, annars används stigande ordning. (Det senare kan specificeras uttryckligen med ASC
.)
Exempel
VÄLJ * FRÅN Anställda BESTÄLL EFTER Efternamn , Förnamn
Detta sorteras efter fältet Efternamn och sedan efter fältet Förnamn om Efternamn matchar.