Sortera med ORDER BY
Sortera rader stigande och fallande.
Sortera med ORDER BY är en gratis lektion i SQL Academy på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för SQL Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i SQL Academy innehåller totalt 4 lektioner.
Varför ordningen spelar roll
Som standard returnerar en SELECT rader i en ordning som inte är garanterad. Databasen kan lämna tillbaka dem i den ordning som är praktisk.
När ni behöver ett förutsägbart resultat, till exempel en alfabetisk lista eller ett flöde med de nyaste posterna först, måste ni uttryckligen begära det med ORDER BY.
-- Without ORDER BY, row order is NOT guaranteed
SELECT name, price
FROM products;ORDER BY-klausulen
ORDER BY placeras nära slutet av en fråga, efter WHERE och före LIMIT. Ange den kolumn som ska användas för sorteringen.
Detta sorterar produkterna alfabetiskt efter name.
SELECT name, price
FROM products
ORDER BY name;Stigande är standard
Om ni inte anger något annat är sorteringen stigande: A till Ö för text, från minst till störst för tal och från tidigast till senast för datum.
Ni kan skriva ASC för att göra detta tydligt, men det ändrar ingenting.
-- These two queries are identical
SELECT name, price FROM products ORDER BY price;
SELECT name, price FROM products ORDER BY price ASC;Sortera fallande
Lägg till DESC för att vända ordningen: Ö till A, från störst till minst och från nyast till äldst.
Detta listar de dyraste produkterna först.
SELECT name, price
FROM products
ORDER BY price DESC;Sortera datum
Datum och tidsstämplar sorteras kronologiskt. DESC ger er de nyaste raderna först, vilket är det klassiska mönstret för aktivitetsflöden och loggar.
SELECT id, total, created_at
FROM orders
ORDER BY created_at DESC;Sortera efter en kolumn som ni inte väljer
Sorteringskolumnen behöver inte finnas med i listan i SELECT. Ni kan sortera efter något som användaren aldrig ser.
Här visar vi endast namnet, men sorterar i bakgrunden efter pris.
SELECT name
FROM products
ORDER BY price DESC;Sortera efter kolumnens position
PostgreSQL låter er sortera efter en kolumns position i SELECT-listan. ORDER BY 2 betyder "den andra valda kolumnen".
Det är praktiskt i snabba frågor, men att använda riktiga kolumnnamn är tydligare och säkrare.
-- 2 refers to price (the 2nd column)
SELECT name, price
FROM products
ORDER BY 2 DESC;Sortera efter ett uttryck
Ni kan sortera efter ett beräknat värde, inte bara efter en lagrad kolumn. Uttrycket utvärderas för varje rad och används sedan för sorteringen.
Detta rangordnar produkterna efter deras totala lagervärde.
SELECT name, price, stock
FROM products
ORDER BY price * stock DESC;Sortera efter ett alias
Om ni ger ett uttryck ett alias i SELECT kan ni återanvända aliaset i ORDER BY. Det gör frågan mer lättläst.
SELECT name, price * stock AS inventory_value
FROM products
ORDER BY inventory_value DESC;Skiftlägeskänslighet vid textsortering
Textsortering följer databasens kollationering, och versaler och gemener kan sorteras annorlunda än ni förväntar er.
För att tvinga fram en skiftlägesokänslig ordning sorterar ni efter en gemen version av kolumnen med LOWER().
SELECT name
FROM products
ORDER BY LOWER(name);Var ORDER BY placeras
Kom ihåg klausulernas logiska ordning:
FROMväljer tabellenWHEREfiltrerar raderORDER BYsorterar det som återstårLIMITbegränsar resultatet
Sortering sker alltid efter filtrering.
SELECT name, price
FROM products
WHERE price > 10
ORDER BY price DESC;Snabbkontroll
Vilken fråga listar de billigaste produkterna först?
Sammanfattning
Ni har nu kontroll över radordningen:
ORDER BY columnsorterar resultatetASC(standard) går från minst till störst;DESCvänder på ordningen- Ni kan sortera efter kolumner, positioner, uttryck eller alias
- Använd
LOWER()för textsortering utan hänsyn till skiftläge
I nästa del bryter ni lika värden genom att sortera efter flera kolumner samtidigt.
SELECT name, price
FROM products
ORDER BY price DESC;Lär dig SQL med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 46
- Lektioner
- 183
Vanliga frågor
Är lektionen ”Sortera med ORDER BY” gratis?
Ja – hela texten till ”Sortera med ORDER BY” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i SQL Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i SQL Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Sortera med ORDER BY”?
Sortera rader stigande och fallande. Ni övar på SQL Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig SQL Academy?
Du behöver inga förkunskaper. Utbildningen i SQL Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.
Hur lång tid tar lektionen ”Sortera med ORDER BY”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här SQL Academy-lektionen?
Ja. Varje SQL Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Sortera med ORDER BY
- Sortera efter flera kolumner
- LIMIT och OFFSET
- Hitta de N främsta posterna