SQL Academy · leksjon

ORDER BY med én eller flere kolonner

Sorter resultater stigende eller synkende, sorter etter flere kolonner, og bestem hvor NULL-verdier plasseres med NULLS FIRST / NULLS LAST.

Leksjon 3 av 413 trinn

ORDER BY med én eller flere kolonner er en gratis leksjon i SQL Academy på CoddyKit. Dette er leksjon 3 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i SQL Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i SQL Academy inneholder totalt 4 leksjoner.

Hvorfor du trenger ORDER BY

En SQL-tabell er et uordnet sett. Uten ORDER BY kan databasen returnere rader i hvilken som helst rekkefølge – og rekkefølgen kan endres mellom kjøringer. Hvis rekkefølgen er viktig i brukergrensesnittet eller rapporten, må du sortere eksplisitt.

Sortering etter én kolonne

Standardrekkefølgen 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 etter flere kolonner

List opp kolonnene i prioritert rekkefølge. Den andre kolonnen avgjør rekkefølgen når den første har like verdier:

SELECT first_name, last_name, age
FROM users
ORDER BY last_name ASC, first_name ASC, age DESC;

Sortering etter uttrykk

Du kan sortere etter hvilket som helst uttrykk:

SELECT email, full_name
FROM users
ORDER BY LENGTH(email) DESC, email ASC;

Sortering etter alias eller posisjon

Du kan referere til et alias i SELECT-listen eller til den 1-baserte posisjonen:

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

Bestem hvor NULL-verdier skal plasseres:

-- 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;

Stabil sortering og tie-breakere

Hvis flere rader har samme sorteringsnøkkel, kan databasen returnere dem i hvilken som helst rekkefølge. Legg til primærnøkkelen som tie-breaker for deterministiske resultater:

SELECT * FROM orders
ORDER BY created_at DESC, id DESC;

ORDER BY og indekser

Hvis det finnes en indeks på kolonnen(e) i ORDER BY, kan databasen lese radene i riktig rekkefølge uten et eget sorteringstrinn.

-- 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 kjøres etter WHERE

ORDER BY opererer på resultatet av WHERE/GROUP BY/HAVING. Filtreringen skjer først, og deretter sorteringen.

Ikke sorter enorme tabeller uten LIMIT

Det er kostbart å sortere et resultat med én milliard rader. Hvis du bare trenger de øverste N radene, legger du til LIMIT – spørringsplanleggeren kan da bytte til en Top-N-strategi.

SELECT * FROM events ORDER BY created_at DESC LIMIT 50;

Oppsummering

ORDER BY gjør resultatene deterministiske.

  • ASC / DESC per kolonne
  • Flere kolonner som tie-breakere
  • NULLS FIRST / LAST når det er relevant
  • Kombiner alltid store sorteringer med LIMIT

Hurtigsjekk

Hva er standard sorteringsretning i SQL?

Gratis å komme i gang

Lær deg SQL med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
46
Leksjoner
183

Ofte stilte spørsmål

Er leksjonen «ORDER BY med én eller flere kolonner» gratis?

Ja – hele teksten i «ORDER BY med én eller flere kolonner» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av SQL Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i SQL Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «ORDER BY med én eller flere kolonner»?

Sorter resultater stigende eller synkende, sorter etter flere kolonner, og bestem hvor NULL-verdier plasseres med NULLS FIRST / NULLS LAST. Du øver på SQL Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med SQL Academy?

Ingen tidligere erfaring er nødvendig. SQL Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.

Hvor lang tid tar leksjonen «ORDER BY med én eller flere kolonner»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne SQL Academy-leksjonen?

Ja. Alle SQL Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Velge kolonner og uttrykk
  2. WHERE-filtre: sammenlignings- og logikkoperatorer
  3. ORDER BY med én eller flere kolonner
  4. Grunnleggende om LIMIT, OFFSET og paginering
← Tilbake til SQL Academy