Divide uma string por um delimitador e retorna o elemento na posição especificada (índice base zero). Retorna NULL se qualquer argumento for NULL, se o índice estiver fora do intervalo ou for -1.
Sintaxe
VARCHAR SPLIT_INDEX(VARCHAR str, VARCHAR sep, INT index)
Argumentos
|
Argumento |
Tipo de dados |
Descrição |
|
|
VARCHAR |
A string a ser dividida. |
|
|
VARCHAR |
O delimitador. |
|
|
INT |
A posição do elemento a ser retornado (índice base zero). Retorna NULL se o índice estiver fora do intervalo ou for -1. |
Exemplo
Dados de teste
|
str (VARCHAR) |
sep (VARCHAR) |
index (INT) |
|
Jack,John,Mary |
, |
2 |
|
Jack,John,Mary |
, |
3 |
|
Jack,John,Mary |
NULL |
0 |
|
Jack,John,Mary |
, |
-1 |
|
NULL |
, |
0 |
Código de teste
SELECT SPLIT_INDEX(str, sep, index) AS var1
FROM T1;
Resultado do teste
|
var1 (VARCHAR) |
|
Mary |
|
NULL |
|
NULL |
|
NULL |
|
NULL |
Explicação do resultado
Linha 1: Ao dividir
"Jack,John,Mary"por",", obtém-se["Jack", "John", "Mary"]. O índice 2 retorna"Mary".Linha 2: O índice 3 está fora do intervalo (o array tem os índices 0 a 2), portanto, o resultado é NULL.
Linha 3:
sepé NULL, o que resulta em NULL.Linha 4: O índice é -1, logo, o resultado é NULL.
Linha 5: Como
stré NULL, o resultado é NULL.