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.