Inleiding
wanneer u gegevens opvraagt in PostgreSQL, wilt u waarschijnlijk dat uw resultaten op een bepaalde manier gesorteerd worden. In PostgreSQL kunt u de sorteervolgorde van uw resultaten opgeven met de ORDER BY
clausule. Met deze clausule kunt u de kolom opgeven waarmee u uw resultaten wilt sorteren en kunt u ook kiezen tussen oplopende volgorde en aflopende volgorde. In dit artikel, we zullen een kijkje nemen op de PostgreSQL oplopende volgorde en aflopende volgorde opties.
Prerequisites
om samen met de voorbeelden te volgen die we in deze tutorial zullen bekijken, moet u ervoor zorgen dat PostgreSQL server correct is geïnstalleerd en geconfigureerd. De service moet op de achtergrond draaien.
Als u in een Linux-of Windows-omgeving werkt, kunt u PostgreSQL hier downloaden.
Wat is de PostgreSQL volgorde bij Clausule?
wanneer we gegevens uit een PostgreSQL-tabel willen ophalen, maken we een SELECT
statement. Standaard retourneert PostgreSQL de rijen in dezelfde volgorde als waarin ze zijn ingevoegd. We kunnen onze resultaten echter aanpassen om ze leesbaarder te maken door ze te sorteren. Er zijn twee manieren waarop de resultaten kunnen worden gesorteerd: oplopende volgorde en aflopende volgorde. We gebruiken de PostgreSQL ORDER BY
clausule in onze SELECT
instructie om onze sorteervoorkeuren te specificeren.
Hieronder is de syntaxis voor de PostgreSQL ORDER BY
clausule:
1
2 3 4 5 6 |
SELECTEER
name_of_the_column UIT target_table ORDER BY name_of_the_column ASC |
Laten we bespreken deze syntaxis in iets meer detail:
- Eerste, we geven de naam van de kolom die we gebruiken voor het sorteren van de
ORDER BY
component. Als we op een aantal kolommen willen Sorteren, scheiden we ze met een komma. - nadat we onze kolomnaam hebben opgegeven, gebruiken we
ASC
om oplopende volgorde op te geven ofDESC
voor aflopende volgorde. De standaardwaarde van deORDER BY
clausule isASC
of oplopende volgorde als er geen waarde is opgegeven.
een Steekproefgegevenset aanmaken
We moeten een steekproefgegevenset maken om in onze voorbeelden te gebruiken. Laten we beginnen met het aanmaken van een tabel met de naam 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 rijen) |
een voorbeeld met PostgreSQL-volgorde door ASC
nu we hebben geleerd hoe het statement PostgreSQL ORDER BY
werkt, We probeer het te gebruiken om de records te sorteren die we in de vorige sectie hebben gemaakt.
laten we het volgende statement gebruiken:
1
|
selecteer * uit client_infovolgorde per client_firstname ASC;
|
Deze instructie zal PostgreSQL instrueren om alle rijen in de tabel te selecteren client_info
en ze te sorteren op basis van de client_firstname
kolom in oplopende volgorde.
de resultaten van deze query zullen er ongeveer als volgt uitzien:
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 rijen) |
We kunnen zien dat de waarden in het veld client_firstname
in oplopende alfabetische volgorde zijn gesorteerd– onze zoekopdracht was succesvol.
een voorbeeld met PostgreSQL-volgorde door DESC
In het vorige voorbeeld gebruikten we de ORDER BY
clausule met de ASC
optie voor oplopende volgorde. Nu doen we het tegenovergestelde en gebruiken ORDER BY
met DESC
om in aflopende volgorde te sorteren.
om dit Te doen, gebruiken we de volgende instructie:
1
|
SELECT * FROM client_info OM DOOR client_age DESC;
|
De bovenstaande code zal sorteren van de opgehaalde rijen in aflopende volgorde gebaseerd op de client_age
.
de resultaten zullen er ongeveer zo uitzien:
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 rijen) |
zoals verwacht worden de waarden in de kolom client_age
gesorteerd en in aflopende volgorde geretourneerd.
conclusie
Het sorteren van uw resultaten kan orde en leesbaarheid brengen in ongeorganiseerde gegevens, en het is belangrijk om te weten hoe u uw sorteervoorkeuren kunt opgeven in uw database queries. In deze tutorial hebben we gesproken over de PostgreSQL ORDER BY
clausule, waarmee je kunt kiezen tussen oplopende volgorde en aflopende volgorde als je sorteeropties. Met de voorbeelden die we eerder bespraken als een gids, zult u in staat zijn om sorteervolgorde in uw eigen database queries te specificeren.
alleen de Code
hieronder zijn alle codefragmenten die we in onze tutorial bekeken hebben. Voel je vrij om ze te kopiëren en aan te passen aan uw eigen use cases.
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
SELECT * FROM client_info ORDER BY DESC client_age;
CREATE TABLE client_info( client_id INT PRIMAIRE SLEUTEL NIET NULL is, client_firstname TEXT not NULL, client_lastname TEXT not NULL, client_age INT not NULL, client_email TEXT not NULL ); INVOEGEN IN 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]’); SELECT * FROM client_info ORDER BY client_firstname ASC; SELECT * FROM client_info ORDER BY client_age DESC; |