sql >> Database teknologi >  >> RDS >> SQLite

Hvordan Group_Concat() virker i SQLite

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                                           

  1. 3 måder at få sproget for den aktuelle session i SQL Server (T-SQL)

  2. Flere online operationer tilgængelige nu - eller snart

  3. Vælg første række af hver gruppe i sql

  4. Aggreger funktion over et givet tidsinterval