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 |