- Categorias:
SPLIT¶
Divide uma determinada cadeia de caracteres com um separador especificado e retorna o resultado em uma matriz de cadeias de caracteres.
Cadeias de caracteres divididas contíguas na cadeia de caracteres de origem, ou a presença de uma cadeia de caracteres dividida no início ou no fim da cadeia de caracteres de origem, resulta em uma cadeia de caracteres vazia na saída. Uma cadeia de caracteres do separação vazia resulta em uma matriz contendo apenas a cadeia de caracteres de origem. Se qualquer um dos parâmetros for um NULL, um NULL é devolvido.
O resultado pode ser usado com funções e construções que operam com dados semiestruturados (por exemplo, FLATTEN e ARRAY_SIZE).
- Consulte também:
Sintaxe¶
SPLIT(<string>, <separator>)
Argumentos¶
string
Texto a ser dividido em partes.
separator
Texto a dividir a cadeia de caracteres.
Retornos¶
O tipo de dados do valor retornado é ARRAY.
Detalhes do agrupamento¶
Esta função não oferece suporte às seguintes especificações de agrupamento:
pi
(não identifica pontuação).cs-ai
(diferencia maiúsculas e minúsculas, não identifica acentos).
Os valores na matriz de saída não incluem uma especificação de agrupamento e, portanto, não oferecem suporte a outras operações de agrupamento.
Nota
Para usar esta função com uma coluna que tenha os especificadores de agrupamento upper
ou lower
, você deve ativar o pacote de mudança de comportamento 2024_02 em sua conta.
Para ativar este pacote em sua conta, execute a seguinte instrução:
SELECT SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE('2024_02');
Exemplos¶
Dividir o endereço IP do host local 127.0.0.1
em uma matriz composta por cada uma das quatro partes:
SELECT SPLIT('127.0.0.1', '.'); +-------------------------+ | SPLIT('127.0.0.1', '.') | |-------------------------| | [ | | "127", | | "0", | | "0", | | "1" | | ] | +-------------------------+
Dividir uma cadeia de caracteres que contenha linhas verticais como separadores (note que a saída conterá cadeias de caracteres vazias):
SELECT SPLIT('|a||', '|'); +--------------------+ | SPLIT('|A||', '|') | |--------------------| | [ | | "", | | "a", | | "", | | "" | | ] | +--------------------+
Use o resultado de SPLIT para gerar vários registros a partir de uma única cadeia de caracteres usando a construção LATERAL FLATTEN. FLATTEN é uma função de tabela que pega uma coluna VARIANT, OBJECT ou ARRAY e produz uma exibição lateral (ou seja, uma exibição em linha que contém correlação referente a outras tabelas que a precedem na cláusula FROM):
SELECT * FROM persons; ------+---------------------+ NAME | CHILDREN | ------+---------------------+ Mark | Marky,Mark Jr,Maria | John | Johnny,Jane | ------+---------------------+ SELECT name, C.value::string AS childName FROM persons, LATERAL FLATTEN(input=>split(children, ',')) C; ------+-----------+ NAME | CHILDNAME | ------+-----------+ John | Johnny | John | Jane | Mark | Marky | Mark | Mark Jr | Mark | Maria | ------+-----------+