- Catégories :
SPLIT¶
Fractionne une chaîne donnée avec un séparateur donné et renvoie le résultat sous la forme d’un tableau de chaînes.
Des chaînes fractionnées contiguës dans la chaîne source ou la présence d’une chaîne fractionnée au début ou à la fin de la chaîne source entraînent une chaîne vide dans la sortie. Une chaîne de séparateur vide produit un tableau contenant uniquement la chaîne source. Si l’un des paramètres est NULL, une valeur NULL est renvoyée.
Le résultat peut être utilisé avec des fonctions et des constructions opérant sur des données semi-structurées (par exemple FLATTEN, ARRAY_SIZE).
- Voir aussi ::
Syntaxe¶
SPLIT(<string>, <separator>)
Arguments¶
string
Texte à scinder en plusieurs parties.
separator
Texte servant à scinder la chaîne.
Renvoie¶
Le type de données de la valeur renvoyée est ARRAY.
Détails du classement¶
Cette fonction ne fonctionne pas avec les spécifications de classement suivantes :
pi
(insensible à la ponctuation).cs-ai
(sensible à la casse, insensible aux accents)
Les valeurs du tableau de sortie n’incluent pas de spécification de classement et ne prennent donc pas en charge d’autres opérations de classement.
Note
Pour utiliser cette fonction avec une colonne qui a les spécificateurs de classement upper
ou lower
, vous devez activer le bundle de changements de comportement 2024_02 dans votre compte.
Pour activer ce bundle dans votre compte, exécutez l’instruction suivante :
SELECT SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE('2024_02');
Exemples¶
Divisez l’adresse IP localhost 127.0.0.1
en un tableau composé de chacune des quatre parties :
SELECT SPLIT('127.0.0.1', '.'); +-------------------------+ | SPLIT('127.0.0.1', '.') | |-------------------------| | [ | | "127", | | "0", | | "0", | | "1" | | ] | +-------------------------+
Fractionnez une chaîne contenant des lignes verticales en tant que séparateurs (notez que la sortie contiendra des chaînes vides) :
SELECT SPLIT('|a||', '|'); +--------------------+ | SPLIT('|A||', '|') | |--------------------| | [ | | "", | | "a", | | "", | | "" | | ] | +--------------------+
Utilisez le résultat de SPLIT pour générer plusieurs enregistrements à partir d’une seule chaîne à l’aide de la construction LATERAL FLATTEN. FLATTEN est une fonction de table qui utilise une colonne VARIANT, OBJECT ou ARRAY et génère une vue latérale (c’est-à-dire une vue en ligne contenant une corrélation faisant référence à d’autres tables qui la précèdent dans la clause 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 | ------+-----------+