sql >> Base de Datos >  >> RDS >> SQLite

Cómo funciona Group_Concat() en SQLite

SQLite tiene un group_concat() función que le permite concatenar múltiples resultados devueltos para una columna en uno.

Esto a veces se denomina "agregación de cadenas".

Por ejemplo, al consultar una base de datos, en lugar de tener el valor de cada columna en una nueva fila, puede usar group_concat() para que salgan como una lista separada por comas.

Sintaxis

Puede usar esta función de una de las siguientes maneras:

group_concat(X)
group_concat(X,Y)

En otras palabras, el group_concat() La función se puede utilizar con uno o dos argumentos.

El segundo argumento especifica un carácter para usar como separador. Si no especifica esto, entonces una coma (, ) se utilizará como separador.

Ejemplo con un argumento

Aquí hay un ejemplo de llamar a group_concat() con un argumento.

SELECT group_concat(FirstName)
FROM Employee;

Resultado:

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

Si no usara group_concat() para concatenar esta columna, los resultados se verían así:

SELECT FirstName
FROM Employee;

Resultado:

Andrew    
Nancy     
Jane      
Margaret  
Steve     
Michael   
Robert    
Laura    

Usar un separador personalizado

Como se mencionó, tiene la opción de especificar qué carácter usar como separador.

Aquí hay un ejemplo de cómo especificar el símbolo de tubería (| ) como separador.

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

Resultado:

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

Aquí hay otro que usa una coma, pero también agrega un espacio a la derecha de la coma.

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

Resultado:

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

Agrupa los resultados

Puede devolver varias columnas y usar GROUP BY cláusula para agruparlos apropiadamente.

He aquí un ejemplo.

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

Resultado:

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