SQLite GROUP_CONCAT

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 tda 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 ttabela

INSERT INTO t(val)
VALUES('A'),('B'),(NULL),('C');
Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Terceiro, consulte os dados da ttabela:

SELECT 
    id,
    val
FROM
    t;
Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Aqui está a saída:

Tabela de amostra SQLite GROUP_CONCAT

Quarto, a instrução a seguir usa a GROUP_CONCAT()função para concatenar todos os valores na   valcoluna da ttabela:

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:

Exemplo SQLite GROUP_CONCAT

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 )
Exemplo SQLite GROUP_CONCAT com separador

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:

Exemplo prático SQLite GROUP_CONCAT

Neste exemplo:

  • Primeiro, a GROUP BYclá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.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *