sql >> Databáze >  >> RDS >> PostgreSQL

Jak vrátit výsledky dotazu jako seznam oddělený čárkami v PostgreSQL

V Postgresu můžeme použít STRING_AGG() funkci transformovat naše výsledky dotazu do seznamu odděleného čárkami.

Místo toho, aby se každá hodnota vypisovala na samostatném řádku (jako u každého běžného dotazu), jsou hodnoty vypsány na jeden řádek oddělený čárkou (nebo jiným oddělovačem dle našeho výběru).

Příklad

Představte si, že spustíme následující dotaz:

SELECT * 
FROM Genres;

Výsledek:

+---------+---------+
| genreid |  genre  |
+---------+---------+
|       1 | Rock    |
|       2 | Jazz    |
|       3 | Country |
|       4 | Pop     |
|       5 | Blues   |
|       6 | Hip Hop |
|       7 | Rap     |
|       8 | Punk    |
+---------+---------+
(8 rows)

Můžeme spustit následující dotaz pro výstup genre sloupec jako seznam oddělený čárkami:

SELECT STRING_AGG(genre, ', ')
FROM Genres;

Výsledek:

+-----------------------------------------------------+
|                     string_agg                      |
+-----------------------------------------------------+
| Rock, Jazz, Country, Pop, Blues, Hip Hop, Rap, Punk |
+-----------------------------------------------------+
(1 row)

Můžeme dokonce zahrnout GenreId sloupec v našem seznamu, pokud chceme:

SELECT STRING_AGG(CONCAT(GenreId, ') ', Genre), ' ' ORDER BY GenreId ASC) 
FROM Genres;

Výsledek:

1) Rock 2) Jazz 3) Country 4) Pop 5) Blues 6) Hip Hop 7) Rap 8) Punk

Zde jsem také použil ORDER BY klauzule v rámci STRING_AGG() za účelem řazení výsledků podle GenreId ve vzestupném pořadí.

Můžeme také dělat věci, jako je odstranění duplikátů (pomocí DISTINCT klauzule), použijte jiný oddělovač a použijte funkci v rámci seskupeného dotazu.

Viz STRING_AGG() Příklady funkcí v PostgreSQL.


  1. Smazání databázového poštovního účtu (SSMS)

  2. Ukládání dat UTF-16/Unicode na SQL Server

  3. Rethink Flask – jednoduchý seznam úkolů založený na Flask a RethinkDB

  4. Jak nastavit barvu stavového řádku v SSMS pro různé instance serveru SQL - SQL Server / Výukový program TSQL, část 6