ORDER BY med én eller flere kolonner
Sortér resultater stigende eller faldende, sortér efter flere kolonner, og bestem hvor NULL-værdier placeres med NULLS FIRST / NULLS LAST.
ORDER BY med én eller flere kolonner er en gratis SQL Academy-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i SQL Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. SQL Academy-kurset indeholder 4 lektioner i alt.
Derfor har du brug for ORDER BY
En SQL-tabel er et uordnet sæt. Uden ORDER BY kan databasen returnere rækkerne i vilkårlig rækkefølge — og rækkefølgen kan ændre sig mellem kørsler. Hvis rækkefølgen har betydning i din brugergrænseflade eller rapport, skal du sortere eksplicit.
Sortering efter én kolonne
Standardsorteringen er stigende:
SELECT id, email FROM users ORDER BY created_at; -- oldest first
SELECT id, email FROM users ORDER BY created_at ASC;
SELECT id, email FROM users ORDER BY created_at DESC; -- newest firstSortering efter flere kolonner
Angiv kolonnerne i prioriteret rækkefølge. Den anden kolonne afgør rækkefølgen ved ens værdier i den første:
SELECT first_name, last_name, age
FROM users
ORDER BY last_name ASC, first_name ASC, age DESC;Sortering efter et udtryk
Du kan sortere efter et vilkårligt udtryk:
SELECT email, full_name
FROM users
ORDER BY LENGTH(email) DESC, email ASC;Sortering efter alias eller position
Du kan referere til et alias i SELECT-listen eller til dets 1-baserede position:
SELECT id, total * 0.9 AS discounted
FROM orders
ORDER BY discounted DESC; -- by alias
SELECT id, total
FROM orders
ORDER BY 2 DESC; -- by position (avoid in code — fragile)NULLS FIRST / NULLS LAST
Styr, hvor NULL-værdier placeres:
-- Default: NULLs LAST when ASC, FIRST when DESC
SELECT * FROM users ORDER BY last_login_at DESC NULLS LAST;
SELECT * FROM users ORDER BY last_login_at ASC NULLS FIRST;Stabile sorteringer og tie-breakere
Hvis flere rækker har samme sorteringsnøgle, kan databasen returnere dem i vilkårlig rækkefølge. Tilføj primærnøglen som tie-breaker for at få deterministiske resultater:
SELECT * FROM orders
ORDER BY created_at DESC, id DESC;ORDER BY og indeks
Hvis der findes et indeks på ORDER BY-kolonnen eller -kolonnerne, kan databasen læse rækkerne i rækkefølge uden et separat sorteringstrin.
-- With index on created_at DESC, this can use the index directly:
SELECT * FROM events ORDER BY created_at DESC LIMIT 100;CASE i ORDER BY
Tilpasset sortering med CASE:
-- Show priority orders first:
SELECT * FROM orders
ORDER BY
CASE status
WHEN 'urgent' THEN 0
WHEN 'normal' THEN 1
ELSE 2
END,
created_at DESC;ORDER BY køres efter WHERE
ORDER BY arbejder på resultatet af WHERE/GROUP BY/HAVING. Filtreringen sker først, og derefter sorteres resultaterne.
Sortér ikke enorme tabeller uden LIMIT
Det er dyrt at sortere et resultat med en milliard rækker. Hvis du kun har brug for de øverste N, skal du tilføje LIMIT — forespørgselsplanlæggeren kan skifte til en Top-N-strategi.
SELECT * FROM events ORDER BY created_at DESC LIMIT 50;Opsummering
ORDER BY gør resultater deterministiske.
- ASC / DESC pr. kolonne
- Flere kolonner som tie-breakere
- NULLS FIRST / LAST efter behov
- Kombinér altid store sorteringer med LIMIT
Hurtigt tjek
Hvad er standardretningen for sortering i SQL?
Lær SQL med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 46
- Lektioner
- 183
Ofte stillede spørgsmål
Er lektionen “ORDER BY med én eller flere kolonner” gratis?
Ja — hele teksten til “ORDER BY med én eller flere kolonner” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af SQL Academy-kurset, skal du opgradere til CoddyKit PRO. SQL Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “ORDER BY med én eller flere kolonner”?
Sortér resultater stigende eller faldende, sortér efter flere kolonner, og bestem hvor NULL-værdier placeres med NULLS FIRST / NULLS LAST. Du øver dig i SQL Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på SQL Academy?
Der kræves ingen tidligere erfaring. SQL Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.
Hvor lang tid tager lektionen “ORDER BY med én eller flere kolonner”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne SQL Academy-lektion?
Ja. Alle SQL Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Valg af kolonner og udtryk
- WHERE-filtre: sammenlignings- og logikoperatorer
- ORDER BY med én eller flere kolonner
- Grundlæggende LIMIT, OFFSET og paginering