Resumo : neste tutorial, você aprenderá como usar a GROUP_CONCAT()
função SQLite para concatenar valores não nulos em uma coluna.
Introdução à GROUP_CONCAT()
função SQLite
A GROUP_CONCAT()
função é uma função agregada que concatena todos os valores não nulos em uma coluna.
O seguinte mostra a sintaxe da GROUP_CONCAT()
função:
GROUP_CONCAT(expression [,separator])
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Nesta sintaxe:
-
expression
é uma coluna ou expressão que será usada para concatenação. - separador: todos os valores serão separados pelo separador. Se você pular o separador, a
GROUP_CONCAT()
função usará uma vírgula (“,”) por padrão.
GROUP_CONCAT()
Demonstração da função SQLite
Primeiro, crie uma nova tabela com o nome t
da demonstração:
CREATE TABLE t(
id INTEGER PRIMARY KEY,
val TEXT
);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Segundo, insira três strings na t
tabela
INSERT INTO t(val)
VALUES('A'),('B'),(NULL),('C');
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Terceiro, consulte os dados da t
tabela:
SELECT
id,
val
FROM
t;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Aqui está a saída:
Quarto, a instrução a seguir usa a GROUP_CONCAT()
função para concatenar todos os valores na val
coluna da t
tabela:
SELECT
GROUP_CONCAT(val)
FROM
t;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Neste exemplo, não utilizamos o separador, portanto, a GROUP_CONCAT()
função usa vírgula por padrão.
A imagem a seguir mostra a saída:
Quinto, se você não quiser usar vírgula como separador, você pode usar outra string, por exemplo, ponto e vírgula (“;”):
SELECT
GROUP_CONCAT(val,';')
FROM
t;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
GROUP_CONCAT()
Exemplo de função SQLite
A instrução a seguir obtém o ID do álbum e uma lista de nomes de faixas separados por vírgula para cada álbum:
SELECT
Title,
GROUP_CONCAT(name,';') track_list
FROM
tracks t
INNER JOIN albums a on a.AlbumId = t.AlbumId
GROUP BY
Title
ORDER BY
Title;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A saída é mostrada a seguir:
Neste exemplo:
- Primeiro, a
GROUP BY
cláusula divide as faixas por álbum em grupos. - Em seguida, a
GROUP_CONCAT()
função se aplica a cada grupo para concatenar nomes de faixas.
Neste tutorial, você aprendeu como usar a GROUP_CONCAT()
função SQLite para concatenar todos os valores não nulos em uma coluna.