SQLite har en group_concat()
funktion, der giver dig mulighed for at sammenkæde flere resultater, der returneres for en kolonne, til én.
Dette omtales nogle gange som "strengaggregation".
For eksempel, når du forespørger en database, i stedet for at have hver kolonnes værdi output i en ny række, kan du bruge group_concat()
for at få dem udskrevet som en kommasepareret liste.
Syntaks
Du kan bruge denne funktion på en af følgende måder:
group_concat(X)
group_concat(X,Y)
Med andre ord, group_concat()
funktion kan bruges med enten et argument eller to.
Det andet argument angiver et tegn, der skal bruges som separator. Hvis du ikke angiver dette, er der et komma (,
) vil blive brugt som separator.
Eksempel med ét argument
Her er et eksempel på at kalde group_concat()
med ét argument.
SELECT group_concat(FirstName)
FROM Employee;
Resultat:
Andrew,Nancy,Jane,Margaret,Steve,Michael,Robert,Laura
Hvis jeg ikke brugte group_concat()
for at sammenkæde denne kolonne, ville resultaterne have set sådan ud:
SELECT FirstName
FROM Employee;
Resultat:
Andrew Nancy Jane Margaret Steve Michael Robert Laura
Brug en brugerdefineret separator
Som nævnt har du mulighed for at angive hvilket tegn du skal bruge som separator.
Her er et eksempel på angivelse af rørsymbolet (|
) som separator.
SELECT group_concat(FirstName, '|')
FROM Employee;
Resultat:
Andrew|Nancy|Jane|Margaret|Steve|Michael|Robert|Laura
Her er en anden, der bruger et komma, men som også tilføjer et mellemrum til højre for kommaet.
SELECT group_concat(FirstName, ', ')
FROM Employee;
Resultat:
Andrew, Nancy, Jane, Margaret, Steve, Michael, Robert, Laura
Gruppér resultaterne
Du kan returnere flere kolonner og bruge GROUP BY
klausul for at gruppere dem korrekt.
Her er et eksempel.
SELECT ArtistId, group_concat(AlbumName)
FROM Albums
GROUP BY ArtistId LIMIT 10;
Resultat:
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