Divise une chaîne de caractères selon un délimiteur et renvoie l'élément à la position spécifiée (indexation à partir de zéro). Renvoie NULL si l'un des arguments est NULL, si l'index est hors limites ou s'il est égal à -1.
Syntaxe
VARCHAR SPLIT_INDEX(VARCHAR str, VARCHAR sep, INT index)
Arguments
|
Argument |
Type de données |
Description |
|
|
VARCHAR |
La chaîne de caractères à diviser. |
|
|
VARCHAR |
Le délimiteur. |
|
|
INT |
La position (à partir de zéro) de l'élément à renvoyer. Renvoie NULL si l'index est hors limites ou s'il est égal à -1. |
Exemple
Données de test
|
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 |
Code de test
SELECT SPLIT_INDEX(str, sep, index) AS var1
FROM T1;
Résultat du test
|
var1 (VARCHAR) |
|
Mary |
|
NULL |
|
NULL |
|
NULL |
|
NULL |
Explication des résultats
Ligne 1 : la division de
"Jack,John,Mary"par","donne le tableau["Jack", "John", "Mary"]. L'index 2 renvoie"Mary".Ligne 2 : l'index 3 est hors limites (le tableau contient les indices 0 à 2), donc le résultat est NULL.
Ligne 3 :
sepest NULL, donc le résultat est NULL.Ligne 4 : l'index est -1, donc le résultat est NULL.
Ligne 5 :
strest NULL, donc le résultat est NULL.