Problem:
Du vill visa poster från en tabell i alfabetisk eller omvänd alfabetisk ordning enligt angiven kolumn.
Exempel:
Vår databas har en tabell som heter kund. Kundtabellen innehåller data i kolumnerna id, first_name och last_name.
id | förnamn | efternamn |
---|---|---|
1 | Susan | Thomas |
2 | John | Michael |
3 | Tom | Muller |
Låt oss visa varje kunds information, sorterad i stigande ordning efter deras efternamn.
Lösning:
SELECT id, first_name, last_name, FROM customer ORDER BY last_name ASC;
Den här frågan returnerar sorterade alfabetiska poster:
id | förnamn | efternamn |
---|---|---|
2 | John | Michael |
3 | Tom | Muller |
1 | Susan | Thomas |
Diskussion:
Om du vill välja poster från en tabell men vill se dem sorterade efter en given kolumn, kan du helt enkelt använda ORDER BY
sats i slutet av en SELECT
påstående. Det spelar ingen roll hur komplicerad eller lång din SQL-fråga är—ORDER BY
ska alltid vara i slutet av kommandot.
Efter ORDER BY
nyckelord, namnger du kolumnen som posterna ska sorteras efter. I vår förfrågan sorterar vi efter kundens efternamn.
eller
Som standard, ORDER BY
utan ytterligare specifikationer sorteras i stigande ordning (motsvarande att använda ASC
sökord uttryckligen). Som du säkert kan gissa, ASC
står för "stigande". Om du vill sortera i fallande ordning, anger du förenklat DESC
nyckelord efter kolumnnamnet.
Frågan nedan liknar den föregående men returnerar en lista över kunder sorterade i fallande ordning efter deras efternamn:
SELECT id, first_name, last_name, FROM customer ORDER BY last_name DESC;
id | förnamn | efternamn |
---|---|---|
1 | Susan | Thomas |
3 | Tom | Muller |
2 | John | Michael |