- Categorias:
Funções de cadeia de caracteres e binários (Geral) , Funções de tabela
STRTOK_SPLIT_TO_TABLE¶
Tokeniza uma cadeia de caracteres com o conjunto de delimitadores especificado e nivela os resultados em linhas.
- Consulte também:
Sintaxe¶
STRTOK_SPLIT_TO_TABLE(<string> [,<delimiter_list>])
Argumentos¶
Obrigatório:
string
Texto a ser tokenizado.
Opcional:
delimiter_list
Conjunto de delimitadores. Opcional. O valor padrão é um caractere de espaço único.
Retornos¶
Isso retorna 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
As colunas da tabela original (correlacionada) que foi usada como fonte de dados para esta função também são acessíveis. 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 STRTOK_SPLIT_TO_TABLE.
Exemplos¶
Aqui está um exemplo simples de entrada constante.
SELECT table1.value FROM table(strtok_split_to_table('a.b', '.')) AS table1 ORDER BY table1.value; +-------+ | VALUE | |-------| | a | | b | +-------+
Os dois exemplos a seguir utilizam a tabela e os dados criados abaixo:
CREATE OR REPLACE TABLE splittable (v VARCHAR); INSERT INTO splittable (v) VALUES ('a b'), ('cde'), ('f|g'), ('');Este exemplo mostra o uso da função como uma tabela correlacionada:
SELECT * FROM splittable, LATERAL STRTOK_SPLIT_TO_TABLE(splittable.v, ' ') ORDER BY SEQ, INDEX; +-----+-----+-------+-------+ | V | SEQ | INDEX | VALUE | |-----+-----+-------+-------| | a b | 1 | 1 | a | | a b | 1 | 2 | b | | cde | 2 | 1 | cde | | f|g | 3 | 1 | f|g | +-----+-----+-------+-------+Este exemplo é o mesmo que o anterior, exceto que ele especifica múltiplos delimitadores:
SELECT * FROM splittable, LATERAL STRTOK_SPLIT_TO_TABLE(splittable.v, ' |') ORDER BY SEQ, INDEX; +-----+-----+-------+-------+ | V | SEQ | INDEX | VALUE | |-----+-----+-------+-------| | a b | 1 | 1 | a | | a b | 1 | 2 | b | | cde | 2 | 1 | cde | | f|g | 3 | 1 | f | | f|g | 3 | 2 | g | +-----+-----+-------+-------+