SQL Academy · Lektion

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.

Lektion 3 af 413 trin

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 first

Sortering 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?

Gratis at komme i gang

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

  1. Valg af kolonner og udtryk
  2. WHERE-filtre: sammenlignings- og logikoperatorer
  3. ORDER BY med én eller flere kolonner
  4. Grundlæggende LIMIT, OFFSET og paginering
← Tilbage til SQL Academy