Hur man använder SQL ORDER BY
Med SQL:s kommando ORDER BY kan du sortera sökresultaten efter dina individuella behov, i stigande eller fallande ordning. Genom att sortera data i din måltabell i rader och kolumner kan du göra resultaten tydligare och mer läsbara. Det optimerar och påskyndar i sin tur dina dataanalyser och sökningar i komplexa datamängder.
Vad är SQL ORDER BY?
Du kan använda SQL ORDER BY för att sortera data och resultat från enkla eller komplexa datamängder. Kommandot gör det möjligt att definiera hur data ska ordnas i måltabellen. Dessutom kan du ange om data ska sorteras i stigande eller fallande ordning. Så ORDER BY hjälper till att leverera sökresultat som är tydliga och lätta att läsa.
Som standard levererar ORDER BY resultat i stigande ordning, det vill säga från A–Z eller från minsta till största värde. Om du föredrar resultat i fallande ordning kan du använda det valfria nyckelordet DESC. Du kan definiera en eller flera målkolumner för resultaten.
SQL ORDER BY är viktigt för att utföra organiserade, snabba sökningar. Det används ofta tillsammans med SELECT, WHERE och andra SQL-operatorer och funktioner som GROUP BY.
Vill du lära dig mer om SQL men vet inte var du ska börja? Vår introduktion till SQL med exempel gör det enkelt att börja lära sig detta populära databasspråk.
Vad är syntaxen för SQL ORDER BY?
Syntaxen för SQL ORDER BY ser ut så här:
SELECT ColumnA, ColumnB, … or *
FROM Table
ORDER BY ColumnA, ColumnB, … (optional: ASC or DESC)sqlOm du bara anger en kolumn efter ORDER BY får du en kolumn med sorterade resultat. Om du anger fler än en kolumn sorteras resultaten baserat på kolumn A. Om kolumn A har identiska poster i vissa rader sorteras dessa rader baserat på kolumn B.
Du kan utöka denna syntax med ytterligare operatorer och parametrar. En WHERE kan till exempel användas för att definiera kriterier som begränsar dina sökresultat. Syntaxen för ORDER BY i kombination med WHERE ser ut så här:
SELECT ColumnA, ColumnB, … or *
FROM Table
WHERE ColumnA = 'SearchCondition'
ORDER BY ColumnA, ColumnB, … (optional: ASC or DESC)sqlDu kan också använda följande parametrar:
SELECT: Du kan använda SELECT för att ange vilka data du vill analysera. Använd en asterisk*för att söka i hela datasetet eller ange namnen på kolumnerna för att arbeta med dessa kolumner.FROM: Anger vilken tabell du vill söka data från.WHERE: WHERE är en valfri klausul för att definiera sökkriterier som begränsar dina resultat. Inom enWHEREkan du använda operatorer som=, LIKE eller NOT.ORDER BY: Definierar vilken kolumn du vill sortera dina resultat efter. Om du inte lägger tillASCellerDESCsorteras resultaten som standard i stigande ordning.
Beroende på databasen sorterar ORDER BY NULL-värden automatiskt eller baserat på den valda sorteringsordningen. I SQLite, MySQL och SQL Server behandlas NULL-värden som de lägsta värdena. Det innebär att de visas i början av stigande resultat. I Oracle och PostgreSQL behandlas NULL-värden som de högsta värdena. De visas därför i slutet av stigande resultat.
Vad kan SQL ORDER BY användas till?
Här är några praktiska användningsfall för SQL ORDER BY:
- Sortera produktinformation baserat på produktnamn, kategori eller pris
- Sortera transaktioner efter belopp, datum eller namn
- Sortera order efter belopp eller betyg
- Sortera anställda efter lön, kontrakt, prestation eller avdelning
- Lista lager baserat på belopp eller namn
- Sortera leveranser efter postnummer eller spårningsnummer
- Sortera kundlistor efter region eller ålder
Exempel på SQL ORDER BY
Vi ska nu titta på tre exempel där vi använder ORDER BY.
Sortera produkter efter pris
I det här exemplet sorterar vi produkter från kategorin “Hår” i stigande ordning baserat på pris. Vi använder FROM och WHERE för att ange vilka artiklar vi vill sortera. Med ORDER BY och ASC anger vi att vi vill sortera dem i stigande ordning baserat på pris. Syntaxen ser ut så här:
SELECT *
FROM Products
WHERE Category = 'Hair'
ORDER BY Price ASC;sqlFiltrering av kunder
Låt oss säga att du arbetar i en tabell som heter “Kunder” och vill sortera alla kunder från Storbritannien efter deras namn. Du vill sortera dem i omvänd alfabetisk ordning från Z till A, så du lägger till DESC till kommandot ORDER BY.
SELECT *
FROM Customers
WHERE Country = 'UK'
ORDER BY Name DESC;sqlSortering baserat på flera kategorier
I det här exemplet vill du sortera produkter från kategorin “Elektronik” efter orderkvantitet. Om orderkvantiteterna är identiska vill du sortera dem efter vilket land ordern kommer från.
SELECT *
FROM Products
WHERE Category = 'Electronics'
ORDER BY OrderQuantity ASC, Country DESC;sqlFinns det alternativ till SQL ORDER BY?
Det finns inga alternativ till ORDER BY i SQL med samma funktion. GROUP BY är dock ett SQL-kommando som ofta används i kombination med ORDER BY. GROUP BY kan användas för att gruppera poster baserat på kategorier, och ORDER BY kan dessutom sortera dessa poster.
Ett exempel: Anta att du vill gruppera kundernas orderkvantiteter efter land och sedan använda aggregeringsfunktionen AVG för att sortera efter genomsnittlig orderkvantitet. Syntaxen för detta skulle se ut som följer:
SELECT Country, AVG(OrderQuantity)
FROM Customers
WHERE Category = 'Electronics'
GROUP BY Country
ORDER BY AVG(OrderQuantity) ASC;sqlDu kan också använda en HAVING-klausul för att filtrera de sorterade posterna baserat på sökkriterier och villkor. LIMIT kan användas för att begränsa resultatuppsättningen till ett visst antal.

