SQLite hat ein group_concat()
Funktion, mit der Sie mehrere für eine Spalte zurückgegebene Ergebnisse zu einem verketten können.
Dies wird manchmal als „String-Aggregation“ bezeichnet.
Wenn Sie beispielsweise eine Datenbank abfragen, können Sie group_concat()
verwenden, anstatt den Wert jeder Spalte in einer neuen Zeile auszugeben um sie als kommagetrennte Liste auszugeben.
Syntax
Sie können diese Funktion auf eine der folgenden Arten verwenden:
group_concat(X)
group_concat(X,Y)
Mit anderen Worten, die group_concat()
Die Funktion kann entweder mit einem oder zwei Argumenten verwendet werden.
Das zweite Argument gibt ein Zeichen an, das als Trennzeichen verwendet werden soll. Wenn Sie dies nicht angeben, wird ein Komma (,
) wird als Trennzeichen verwendet.
Beispiel mit einem Argument
Hier ist ein Beispiel für den Aufruf von group_concat()
mit einem Argument.
SELECT group_concat(FirstName)
FROM Employee;
Ergebnis:
Andrew,Nancy,Jane,Margaret,Steve,Michael,Robert,Laura
Wenn ich group_concat()
nicht verwendet habe Um diese Spalte zu verketten, hätten die Ergebnisse so ausgesehen:
SELECT FirstName
FROM Employee;
Ergebnis:
Andrew Nancy Jane Margaret Steve Michael Robert Laura
Verwenden Sie ein benutzerdefiniertes Trennzeichen
Wie erwähnt, haben Sie die Möglichkeit festzulegen, welches Zeichen als Trennzeichen verwendet werden soll.
Hier ist ein Beispiel für die Angabe des Pipe-Symbols (|
) als Trennzeichen.
SELECT group_concat(FirstName, '|')
FROM Employee;
Ergebnis:
Andrew|Nancy|Jane|Margaret|Steve|Michael|Robert|Laura
Hier ist eine andere, die ein Komma verwendet, aber auch ein Leerzeichen rechts vom Komma hinzufügt.
SELECT group_concat(FirstName, ', ')
FROM Employee;
Ergebnis:
Andrew, Nancy, Jane, Margaret, Steve, Michael, Robert, Laura
Ergebnisse gruppieren
Sie können mehrere Spalten zurückgeben und GROUP BY
verwenden -Klausel, um sie entsprechend zu gruppieren.
Hier ist ein Beispiel.
SELECT ArtistId, group_concat(AlbumName)
FROM Albums
GROUP BY ArtistId LIMIT 10;
Ergebnis:
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