sql >> Databasteknik >  >> RDS >> SQLite

Hur Group_Concat() fungerar i SQLite

SQLite har en group_concat() funktion som låter dig sammanfoga flera resultat som returneras för en kolumn till en.

Detta kallas ibland för "strängaggregation".

Till exempel, när du frågar en databas, istället för att ha varje kolumns värde utmatad i en ny rad, kan du använda group_concat() för att de ska matas ut som en kommaseparerad lista.

Syntax

Du kan använda den här funktionen på något av följande sätt:

group_concat(X)
group_concat(X,Y)

Med andra ord, group_concat() funktion kan användas med antingen ett argument eller två.

Det andra argumentet anger ett tecken som ska användas som avgränsare. Om du inte anger detta kommer ett kommatecken (, ) kommer att användas som separator.

Exempel med ett argument

Här är ett exempel på hur du anropar group_concat() med ett argument.

SELECT group_concat(FirstName)
FROM Employee;

Resultat:

Andrew,Nancy,Jane,Margaret,Steve,Michael,Robert,Laura

Om jag inte använde group_concat() för att sammanfoga denna kolumn skulle resultaten ha sett ut så här:

SELECT FirstName
FROM Employee;

Resultat:

Andrew    
Nancy     
Jane      
Margaret  
Steve     
Michael   
Robert    
Laura    

Använd en anpassad separator

Som nämnts har du möjlighet att ange vilket tecken som ska användas som avgränsare.

Här är ett exempel på hur du anger rörsymbolen (| ) som separator.

SELECT group_concat(FirstName, '|')
FROM Employee;

Resultat:

Andrew|Nancy|Jane|Margaret|Steve|Michael|Robert|Laura

Här är en annan som använder kommatecken, men som också lägger till ett blanksteg till höger om kommatecken.

SELECT group_concat(FirstName, ', ')
FROM Employee;

Resultat:

Andrew, Nancy, Jane, Margaret, Steve, Michael, Robert, Laura

Gruppera resultaten

Du kan returnera flera kolumner och använda GROUP BY för att gruppera dem på lämpligt sätt.

Här är ett exempel.

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. Att infoga nationella tecken i en oracle NCHAR eller NVARCHAR kolumn fungerar inte

  2. Hur man kör ett SQL Plus-skript i PowerShell

  3. Hur returnerar man resultatet av en SELECT inuti en funktion i PostgreSQL?

  4. Ansluter till MySQL med Python