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