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 |