sql >> Database >  >> RDS >> SQLite

Hoe Group_Concat() werkt in SQLite

SQLite heeft een group_concat() functie waarmee u meerdere resultaten die voor een kolom zijn geretourneerd, kunt samenvoegen tot één.

Dit wordt soms "string-aggregatie" genoemd.

Als u bijvoorbeeld een database doorzoekt, kunt u in plaats van dat de waarde van elke kolom in een nieuwe rij wordt uitgevoerd, group_concat() gebruiken om ze als een door komma's gescheiden lijst te laten uitvoeren.

Syntaxis

U kunt deze functie op een van de volgende manieren gebruiken:

group_concat(X)
group_concat(X,Y)

Met andere woorden, de group_concat() functie kan met één of twee argumenten worden gebruikt.

Het tweede argument specificeert een teken dat als scheidingsteken moet worden gebruikt. Als u dit niet opgeeft, wordt een komma (, ) wordt gebruikt als scheidingsteken.

Voorbeeld met één argument

Hier is een voorbeeld van het aanroepen van group_concat() met één argument.

SELECT group_concat(FirstName)
FROM Employee;

Resultaat:

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

Als ik group_concat() niet heb gebruikt om deze kolom samen te voegen, zouden de resultaten er als volgt hebben uitgezien:

SELECT FirstName
FROM Employee;

Resultaat:

Andrew    
Nancy     
Jane      
Margaret  
Steve     
Michael   
Robert    
Laura    

Gebruik een aangepast scheidingsteken

Zoals vermeld, heb je de mogelijkheid om aan te geven welk teken je als scheidingsteken wilt gebruiken.

Hier is een voorbeeld van het specificeren van het pijpsymbool (| ) als scheidingsteken.

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

Resultaat:

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

Hier is er nog een die een komma gebruikt, maar ook een spatie rechts van de komma toevoegt.

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

Resultaat:

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

De resultaten groeperen

U kunt meerdere kolommen retourneren en de GROUP BY . gebruiken clausule om ze op de juiste manier te groeperen.

Hier is een voorbeeld.

SELECT ArtistId, group_concat(AlbumName) 
FROM Albums 
GROUP BY ArtistId LIMIT 10;

Resultaat:

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. Een gebruiker maken in Oracle Multitenant 12c zonder C##-voorvoegsel

  2. Vind alle niet-numerieke waarden in een kolom in Oracle

  3. Geïntegreerd transportgegevensmodel

  4. wat gebeurt er in de overgangsfase van adoptie in R12.2