SQLite má group_concat()
funkce, která umožňuje zřetězit více výsledků vrácených pro sloupec do jednoho.
To se někdy nazývá „agregace řetězců“.
Například při dotazu na databázi můžete místo toho, aby se hodnota každého sloupce vypisovala na nový řádek, použít group_concat()
aby byly výstupem jako seznam oddělený čárkami.
Syntaxe
Tuto funkci můžete použít jedním z následujících způsobů:
group_concat(X)
group_concat(X,Y)
Jinými slovy, group_concat()
funkci lze použít s jedním nebo dvěma argumenty.
Druhý argument určuje znak, který se má použít jako oddělovač. Pokud toto neuvedete, pak čárka (,
) bude použit jako oddělovač.
Příklad s jedním argumentem
Zde je příklad volání group_concat()
s jedním argumentem.
SELECT group_concat(FirstName)
FROM Employee;
Výsledek:
Andrew,Nancy,Jane,Margaret,Steve,Michael,Robert,Laura
Pokud jsem nepoužil group_concat()
pro zřetězení tohoto sloupce by výsledky vypadaly takto:
SELECT FirstName
FROM Employee;
Výsledek:
Andrew Nancy Jane Margaret Steve Michael Robert Laura
Použít vlastní oddělovač
Jak již bylo zmíněno, máte možnost určit, který znak se má použít jako oddělovač.
Zde je příklad určení symbolu potrubí (|
) jako oddělovač.
SELECT group_concat(FirstName, '|')
FROM Employee;
Výsledek:
Andrew|Nancy|Jane|Margaret|Steve|Michael|Robert|Laura
Zde je další, který používá čárku, ale také přidává mezeru napravo od čárky.
SELECT group_concat(FirstName, ', ')
FROM Employee;
Výsledek:
Andrew, Nancy, Jane, Margaret, Steve, Michael, Robert, Laura
Seskupit výsledky
Můžete vrátit více sloupců a použít GROUP BY
klauzule k jejich vhodnému seskupení.
Zde je příklad.
SELECT ArtistId, group_concat(AlbumName)
FROM Albums
GROUP BY ArtistId LIMIT 10;
Výsledek:
ArtistId group_concat(AlbumName)
-------- --------------------------------------------------------------------------
1 Powerslave,Somewhere in Time,Piece of Mind,Killers,No Prayer for the Dying
2 Powerage
3 All Night Wrong,The Sixteen Men of Tain
4 Big Swing Face
5 Ziltoid the Omniscient,Casualties of Cool,Epicloud
6 Singing Down the Lane
7 Long Lost Suitcase,Praise and Blame,Along Came Jones
9 No Sound Without Silence
12 Blue Night,Eternity,Scandinavia