introduktion
når du henter data i postgraduate, vil du sandsynligvis have, at dine resultater skal sorteres på en bestemt måde. I postgraduate kan du angive sorteringsrækkefølgen for dine resultater med ORDER BY
klausulen. Denne klausul giver dig mulighed for at specificere den kolonne, som du vil sortere dine resultater efter, og den giver dig også mulighed for at vælge mellem stigende rækkefølge og faldende rækkefølge. I denne artikel vil vi se nærmere på indstillingerne for stigende rækkefølge og faldende rækkefølge.
forudsætninger
for at følge med de eksempler, vi vil se på i denne vejledning, skal du sikre dig, at Postgraduate server er korrekt installeret og konfigureret. Tjenesten skal køre i baggrunden.
Hvis du arbejder i et miljø, kan du hente
Hvad er postgraduate ORDER BY Klausul?
når vi vil hente data fra en postgraduate tabel, opretter vi enSELECT
erklæring. Som standard returnerer vi rækkerne i samme rækkefølge, som de blev indsat. Vi kan dog tilpasse vores resultater for at gøre dem mere læsbare ved at sortere dem. Der er to måder, hvorpå resultaterne kan sorteres: stigende rækkefølge og faldende rækkefølge. Vi bruger postgraduate ORDER BY
klausul i vores SELECT
erklæring for at angive vores sorteringsindstillinger.
vist nedenfor er syntaksen for PostgraduateORDER BY
klausul:
1
2 3 4 5 6 |
vælg
name_of_the_column fra target_table Bestil af name_of_the_column asc |
lad os diskutere denne syntaks lidt mere detaljeret:
- først angiver vi kolonnenavnet, som vi vil bruge til sortering i
ORDER BY
klausul. Hvis vi vil sortere efter et antal kolonner, adskiller vi dem ved hjælp af et komma. - når vi har angivet vores kolonnenavn, bruger vi
ASC
for at angive stigende rækkefølge ellerDESC
for faldende rækkefølge. Standardværdien afORDER BY
klausulen erASC
eller stigende rækkefølge, hvis der ikke er angivet nogen værdi.
oprettelse af et Eksempeldatasæt
Vi skal oprette et eksempeldatasæt, der skal bruges i vores eksempler. Lad os starte med at oprette en tabel med navnet client_info
:
1
2 3 4 5 6 7 |
CREATE TABLE client_info(
client_id INT PRIMARY KEY NOT NULL, client_firstname TEXT NOT NULL, client_lastname TEXT NOT NULL, client_age INT NOT NULL, client_email TEXT NOT NULL ); |
Now, let’s put some records in the table:
1
2 3 4 5 6 7 |
INSERT INTO client_info(client_id,client_firstname, client_lastname, client_age, client_email)
VALUES (1,’John’,’Turf’,17,’[email protected]’), (2,’Raizel’,’Mendez’,16,’[email protected]’), (3,’Gwyneth’,’Damon’,16,’[email protected]’), (4,’Yeshua’,’Galisanao’,8,’[email protected]’), (5,’Dereck’,’Scott’,10,’[email protected]’); |
We can verify that our INSERT
was successful with a SELECT
query statement:
1
2 3 4 5 6 7 8 9 |
testdatabase=# SELECT * FROM client_info;
client_id | client_firstname | client_lastname | client_age | client_email ———–+——————+—————–+————+———————— 1 | John | Turf | 17 | [email protected] 2 | Raizel | Mendez | 16 | [email protected] 3 | Gwyneth | Damon | 16 | [email protected] 4 | Yeshua | Galisanao | 8 | [email protected] 5 | Dereck | Scott | 10 | [email protected] (5 rækker) |
et eksempel ved hjælp af postgraduate ORDER by ASC
nu hvor vi har lært, hvordan Postgraduate ORDER BY
erklæring fungerer, vi prøver at bruge den til at sortere de poster, vi oprettede i det foregående afsnit.
lad os bruge følgende erklæring:
1
|
vælg * fra klient_info bestil efter client_firstname ASC;
|
denne erklæring vil instruere Postgraduate til at vælge alle rækker i tabellen client_info
og sortere dem baseret på client_firstname
kolonne i stigende rækkefølge.
resultaterne af denne forespørgsel vil se ud som følgende:
1
2 3 4 5 6 7 8 |
client_id | client_firstname | client_lastname | client_age | client_email
———–+——————+—————–+————+———————— 5 | Dereck | Scott | 10 | [email protected] 3 | Gwyneth | Damon | 16 | [email protected] 1 | John | Turf | 17 | [email protected] 2 | Raizel | Mendez | 16 | [email protected] 4 | Yeshua | Galisanao | 8 | [email protected] (5 rækker) |
Vi kan se, at værdierne i feltetclient_firstname
sorteres i stigende alfabetisk rækkefølge– vores forespørgsel var vellykket.
et eksempel ved hjælp af DESC
i det foregående eksempel brugte viORDER BY
klausul medASC
mulighed for stigende rækkefølge. Nu gør vi det modsatte og bruger ORDER BY
med DESC
til at sortere i faldende rækkefølge.
for at gøre dette bruger vi følgende erklæring:
1
|
vælg * fra client_info order by client_age desc;
|
koden vist ovenfor sorterer de hentede rækker i faldende rækkefølge baseret på client_age
.
resultaterne vil se sådan ud:
1
2 3 4 5 6 7 8 |
client_id | client_firstname | client_lastname | client_age | client_email
———–+——————+—————–+————+———————— 1 | John | Turf | 17 | [email protected] 2 | Raizel | Mendez | 16 | [email protected] 3 | Gwyneth | Damon | 16 | [email protected] 5 | Dereck | Scott | 10 | [email protected] 4 | Yeshua | Galisanao | 8 | [email protected] (5 rækker) |
som vi forventede, sorteres værdierne i kolonnen client_age
sorteres og returneres i faldende rækkefølge.
konklusion
sortering af dine resultater kan bringe orden og læsbarhed til uorganiserede data, og det er vigtigt at vide, hvordan du angiver dine sorteringsindstillinger i dine databaseforespørgsler. I denne tutorial talte vi om postgraduate ORDER BY
klausul, som giver dig mulighed for at vælge mellem stigende rækkefølge og faldende rækkefølge som dine sorteringsindstillinger. Med de eksempler, vi diskuterede tidligere som en vejledning, kan du angive sorteringsrækkefølge i dine egne databaseforespørgsler.
bare koden
vist nedenfor er alle de kodestykker, vi kiggede på i hele vores tutorial. Du er velkommen til at kopiere og ændre dem, så de passer til dine egne brugssager.
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
vælg * fra client_info Bestil efter client_age DESC;
Opret tabel client_info ( client_id int primær nøgle ikke NULL, client_firstname tekst ikke NULL, client_lastname tekst ikke NULL, client_age INT ikke NULL, client_email tekst ikke NULL ); indsæt i client_info( client_id, client_firstname, client_lastname, client_age,client_email) VALUES (1,’John’,’Turf’,17,’[email protected]’), (2,’Raizel’,’Mendez’,16,’[email protected]’), (3,’Gwyneth’,’Damon’,16,’[email protected]’), (4,’Yeshua’,’Galisanao’,8,’[email protected]’), (5,’Dereck’,’Scott’,10,’[email protected]’); Vælg * fra client_info Bestil efter client_firstname ASC; Vælg * fra client_info Bestil efter client_age DESC; |