- Categorias:
Funções de cadeia de caracteres e binários (Geral) , Funções de tabela
SPLIT_TO_TABLE¶
Esta função de tabela divide uma cadeia de caracteres (baseado em um delimitador especificado) e nivela os resultados em linhas.
- Consulte também:
Sintaxe¶
SPLIT_TO_TABLE(<string>, <delimiter>)
Argumentos¶
string
Texto a ser dividido.
delimiter
Texto a dividir a cadeia de caracteres.
Retornos¶
O valor retornado é uma tabela.
As linhas devolvidas consistem em um conjunto fixo de colunas:
+-----+-------+-------+ | SEQ | INDEX | VALUE | |-----+-------+-------|
- SEQ:
Um número sequencial único associado ao registro de entrada; não é garantido que a sequência esteja livre de lacunas ou seja ordenada de qualquer forma específica.
- INDEX:
O índice do elemento. Baseado em um.
- VALUE:
O valor do elemento da matriz nivelada.
Nota
A consulta também pode acessar as colunas da tabela original (correlacionada) que serviram como fonte de dados para esta função. Se uma única linha da tabela original resultar em várias linhas na exibição nivelada, os valores nesta linha de entrada serão replicados para corresponder ao número de linhas produzidas por SPLIT_TO_TABLE.
Exemplos¶
Aqui está um exemplo simples de entrada constante.
SELECT table1.value FROM table(split_to_table('a.b', '.')) AS table1 ORDER BY table1.value; +-------+ | VALUE | |-------| | a | | b | +-------+
O exemplo a seguir utiliza a tabela e os dados criados abaixo:
CREATE OR REPLACE TABLE splittable (v VARCHAR); INSERT INTO splittable (v) VALUES ('a.b.c'), ('d'), ('');Esta consulta mostra o uso da função como uma tabela correlacionada:
SELECT * FROM splittable, LATERAL SPLIT_TO_TABLE(splittable.v, '.') ORDER BY SEQ, INDEX; +-------+-----+-------+-------+ | V | SEQ | INDEX | VALUE | |-------+-----+-------+-------| | a.b.c | 1 | 1 | a | | a.b.c | 1 | 2 | b | | a.b.c | 1 | 3 | c | | d | 2 | 1 | d | | | 3 | 1 | | +-------+-----+-------+-------+