SQLite ma funkcję group_concat()
funkcja, która umożliwia łączenie wielu wyników zwróconych dla kolumny w jeden.
Jest to czasami określane jako „agregacja ciągów”.
Na przykład podczas wykonywania zapytania do bazy danych, zamiast wyświetlania wartości każdej kolumny w nowym wierszu, możesz użyć group_concat()
aby były wyświetlane jako lista oddzielona przecinkami.
Składnia
Możesz użyć tej funkcji na jeden z następujących sposobów:
group_concat(X)
group_concat(X,Y)
Innymi słowy, group_concat()
funkcja może być używana z jednym lub dwoma argumentami.
Drugi argument określa znak, który ma być użyty jako separator. Jeśli tego nie określisz, przecinek (,
) będzie używany jako separator.
Przykład z jednym argumentem
Oto przykład wywołania group_concat()
z jednym argumentem.
SELECT group_concat(FirstName)
FROM Employee;
Wynik:
Andrew,Nancy,Jane,Margaret,Steve,Michael,Robert,Laura
Gdybym nie użył group_concat()
aby połączyć tę kolumnę, wyniki wyglądałyby tak:
SELECT FirstName
FROM Employee;
Wynik:
Andrew Nancy Jane Margaret Steve Michael Robert Laura
Użyj niestandardowego separatora
Jak wspomniano, masz możliwość określenia, który znak ma być używany jako separator.
Oto przykład określenia symbolu potoku (|
) jako separatora.
SELECT group_concat(FirstName, '|')
FROM Employee;
Wynik:
Andrew|Nancy|Jane|Margaret|Steve|Michael|Robert|Laura
Oto kolejny, który używa przecinka, ale dodaje również spację po prawej stronie przecinka.
SELECT group_concat(FirstName, ', ')
FROM Employee;
Wynik:
Andrew, Nancy, Jane, Margaret, Steve, Michael, Robert, Laura
Pogrupuj wyniki
Możesz zwrócić wiele kolumn i użyć GROUP BY
klauzulę, aby odpowiednio je pogrupować.
Oto przykład.
SELECT ArtistId, group_concat(AlbumName)
FROM Albums
GROUP BY ArtistId LIMIT 10;
Wynik:
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