Problem:
Du ønsker at vise poster fra en tabel i alfabetisk eller omvendt alfabetisk rækkefølge i henhold til den givne kolonne.
Eksempel:
Vores database har en tabel med navnet kunde. Kundetabellen indeholder data i kolonnerne id, first_name og last_name.
| id | fornavn | efternavn |
|---|---|---|
| 1 | Susan | Thomas |
| 2 | John | Michael |
| 3 | Tom | Muller |
Lad os vise hver kundes oplysninger, sorteret i stigende rækkefølge efter deres efternavn.
Løsning:
SELECT id,
first_name,
last_name,
FROM customer
ORDER BY last_name ASC;
Denne forespørgsel returnerer sorterede alfabetisk optegnelser:
| id | fornavn | efternavn |
|---|---|---|
| 2 | John | Michael |
| 3 | Tom | Muller |
| 1 | Susan | Thomas |
Diskussion:
Hvis du vil vælge poster fra en tabel, men gerne vil se dem sorteret efter en given kolonne, kan du blot bruge ORDER BY klausul i slutningen af en SELECT udmelding. Det er lige meget, hvor kompliceret eller lang din SQL-forespørgsel er – ORDER BY skal altid være i slutningen af kommandoen.
Efter ORDER BY nøgleord, navngiver du den kolonne, som posterne skal sorteres efter. I vores forespørgsel sorterer vi efter kundens efternavn.
eller
Som standard, ORDER BY uden yderligere specificator sorteres i stigende rækkefølge (svarende til at bruge ASC søgeord eksplicit). Som du sikkert kan gætte, ASC står for "stigende". Hvis du gerne vil sortere i faldende rækkefølge, skal du forenkle angive DESC søgeord efter kolonnenavnet.
Forespørgslen nedenfor ligner den forrige, men returnerer en liste over kunder sorteret i faldende rækkefølge efter deres efternavn:
SELECT id,
first_name,
last_name,
FROM customer
ORDER BY last_name DESC;
| id | fornavn | efternavn |
|---|---|---|
| 1 | Susan | Thomas |
| 3 | Tom | Muller |
| 2 | John | Michael |