SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

Como Group_Concat() funciona no SQLite


SQLite tem um group_concat() função que permite concatenar vários resultados retornados para uma coluna em um.

Isso às vezes é chamado de “agregação de strings”.

Por exemplo, ao consultar um banco de dados, em vez de ter o valor de cada coluna como saída em uma nova linha, você pode usar group_concat() para tê-los como uma lista separada por vírgulas.

Sintaxe


Você pode usar esta função de uma das seguintes maneiras:
group_concat(X)
group_concat(X,Y)

Em outras palavras, o group_concat() A função pode ser usada com um argumento ou dois.

O segundo argumento especifica um caractere a ser usado como separador. Se você não especificar isso, uma vírgula (, ) será usado como separador.

Exemplo com um argumento


Aqui está um exemplo de chamada de group_concat() com um argumento.
SELECT group_concat(FirstName)
FROM Employee;

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

Se eu não usei group_concat() para concatenar esta coluna, os resultados ficariam assim:
SELECT FirstName
FROM Employee;

Resultado:
Andrew    
Nancy     
Jane      
Margaret  
Steve     
Michael   
Robert    
Laura    

Use um separador personalizado


Conforme mencionado, você tem a opção de especificar qual caractere usar como separador.

Aqui está um exemplo de especificação do símbolo de pipe (| ) como separador.
SELECT group_concat(FirstName, '|')
FROM Employee;

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

Aqui está outro que usa uma vírgula, mas também adiciona um espaço à direita da vírgula.
SELECT group_concat(FirstName, ', ')
FROM Employee;

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

Agrupar os resultados


Você pode retornar várias colunas e usar o GROUP BY cláusula para agrupá-los adequadamente.

Aqui está um exemplo.
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