Introduzione
Quando si recuperano informazioni da una tabella PostgreSQL, è possibile che i risultati vengano restituiti in un ordine particolare. Le parole chiave PostgreSQL ORDER BY
consentono di ordinare i record dal database sulla colonna di vostra scelta. È inoltre possibile specificare se si desidera che i risultati ordinati in ordine crescente o decrescente. In questo articolo, ti mostreremo come ordinare i record e restituirli in ordine decrescente utilizzando le parole chiave Postgres ORDER BY DESC.
Prerequisiti
È necessario assicurarsi che i seguenti prerequisiti siano in vigore prima di procedere con questo tutorial:
- PostgreSQL deve essere installato sul tuo computer per seguire i nostri esempi PostgreSQL ORDER BY DESC.
- Dovresti avere alcune conoscenze di base di PostgreSQL per ottenere il massimo da questo articolo.
Postgres ORDINA decrescendo
Iniziamo osservando la sintassi di base delle parole chiave ORDER BY
con la clausola DESC
:
1
|
SELEZIONA * DA TABLE_NAME ORDINA PER column_name DESC
|
NOTA: se desideri che i risultati vengano restituiti in ordine crescente, sostituisci semplicemente la parola chiave DESC
con ASC
.
Postgres ‘ORDER BY’ example
Prima di procedere con il nostro esempio, creiamo una tabella e chiamiamola”richest_countries”:
1
2 3 4 5 6 |
CREARE la TABELLA richest_countries(
id SERIALE CHIAVE PRIMARIA, paese VARCHAR(30), continente VARCHAR(30), gdp_per_capita NUMERICO ); |
NOTA: assicurarsi di creare un database per la vostra tabella di esempio di cui sopra prima di eseguire il CREATE TABLE
economico sopra indicato. Una volta creato il database, è possibile utilizzare il comando \c
in psql, seguito dal nome del database, per connettersi ad esso.
Ora inseriamo alcuni record nella tabella. Questo ci fornirà alcuni dati di esempio da utilizzare nei nostri esempi:
1
2 3 4 5 6 7 8 9 10 |
INSERT INTO richest_countries (nazione, continente, gdp_per_capita) VALUES (‘Australia’, ‘Australia’, ‘58824’);
INSERT INTO richest_countries (nazione, continente, gdp_per_capita) VALUES (‘Singapore’, ‘Asia’, ‘62690’); INSERT INTO richest_countries (nazione, continente, gdp_per_capita) VALUES (‘Danimarca’, ‘Europa’, ‘63434’); INSERT INTO richest_countries (nazione, continente, gdp_per_capita) VALUES (‘Stati Uniti d’America’, ‘America del Nord’, ‘64906’); INSERT INTO richest_countries (nazione, continente, gdp_per_capita) VALUES (‘Qatar’, ‘Asia’, ‘65062’); INSERT INTO richest_countries (nazione, continente, gdp_per_capita) VALUES (‘Islanda’, ‘Europa’, ‘78181’); INSERT INTO richest_countries (nazione, continente, gdp_per_capita) VALUES (‘Irlanda’, ‘Europa’, ‘81477’); INSERT INTO richest_countries (nazione, continente, gdp_per_capita) VALUES (‘Swirzerland’, ‘Europa’, ‘83832’); INSERT INTO richest_countries (nazione, continente, gdp_per_capita) VALUES (‘Norvegia’, ‘Europa’, ‘86362’); INSERT INTO richest_countries (nazione, continente, gdp_per_capita) VALUES (‘Lussemburgo’, ‘Europa’, ‘119719’); |
Postgres ordinamento economico con ‘ORDER BY’
Nell’esempio riportato di seguito, vi mostriamo i paesi più ricchi e ordinare il loro PIL pro capite, di restituire i record in ordine decrescente:
1
2 3 |
SELEZIONA un paese, di un continente, il CAST(gdp_per_capita COME il DENARO)
DA richest_countries ORDER BY gdp_per_capita DESC; |
Si noti che il precedente istruzione SQL utilizza CAST
in collaborazione con AS MONEY
: restituisce il gdp_per_capita
dei valori di una colonna in una valuta USD formato. La query ordina quindi i record Postgres dal PIL pro capite più alto al minimo:
1
2 3 4 5 6 7 8 9 10 11 12 13 |
paese | continente | gdp_per_capita
————————–+—————+—————- Lussemburgo | Europa | $119,719.00 Norvegia | Europa | $86,362.00 Swirzerland | Europa | $83,832.00 Irlanda | Europa | $81,477.00 Islanda | Europa | $78,181.00 Qatar | Asia | $65,062.00 Stati Uniti D’America | America del Nord | $64,906.00 Danimarca | Europa | $63,434.00 Singapore | Asia | $62,690.00 Australia | Australia| $58,824.00 (10 RIGHE) |
ordinare i record in ordine decrescente, con il limite di
Nel nostro esempio, ci penseremo noi, i paesi più ricchi, ma questa volta, possiamo limitare il numero di record che verranno restituiti:
1
2 3 4 |
SELEZIONA un paese, di un continente, il CAST(gdp_per_capita COME il DENARO)
DA richest_countries ORDER BY gdp_per_capita DESC LIMIT 5; |
la Presente dichiarazione deve essere restituito il seguente:
1
2 3 4 5 6 7 8 |
paese | continente | gdp_per_capita
————-+———–+—————- Lussemburgo | Europa | $119,719.00 Norvegia | Europa | $86,362.00 Swirzerland | Europa | $83,832.00 Irlanda | Europa | $81,477.00 Islanda | Europa | $78,181.00 (5 RIGHE) |
Ordina per PostgreSQL istruzione utilizzando diverse colonne
Quando si utilizza ORDER BY
parole chiave, è possibile ordinare i record in più di una colonna. Per questo esempio, ordineremo i paesi più ricchi per continente e quindi ordineremo per PIL pro capite in ordine decrescente:
1
2 3 |
SELEZIONA paese, continente, CAST(gdp_per_capita COME DENARO)
DA richest_countries ORDINA PER continente, gdp_per_capita DESC; |
L’istruzione SQL sopra restituirà la seguente tabella:
1
2 3 4 5 6 7 8 9 10 11 12 13 |
paese | continente | gdp_per_capita
————————–+—————+—————- Qatar | Asia | $65,062.00 Singapore | Asia | $62,690.00 Australia | Australia | $58,824.00 Lussemburgo | Europa | $119,719.00 Norvegia | Europa | $86,362.00 Swirzerland | Europa | $83,832.00 Irlanda | Europa | $81,477.00 Islanda | Europa | $78,181.00 Danimarca | Europa | $63,434.00 Stati Uniti D’America / America del Nord| $64,906.00 (10 RIGHE) |
Conclusione
Quando si esegue una query PostgreSQL, la possibilità di ordinare i record restituiti rende i risultati più leggibili e consente di ottenere informazioni migliori dai dati. Le parole chiave ORDER BY
consentono di specificare una colonna su cui ordinare i risultati; l’aggiunta della clausola DESC
semplifica l’ordinamento in ordine decrescente. In questo articolo, abbiamo spiegato come utilizzare le parole chiave Postgres ORDER BY DESC per ordinare i risultati di una query. Con i nostri esempi per iniziare, sarai in grado di utilizzare queste parole chiave nelle tue query PostgreSQL.