- Catégories :
Fonctions de chaîne et fonctions binaires (général) , Fonctions de table
STRTOK_SPLIT_TO_TABLE¶
Tokenize une chaîne avec le jeu de délimiteurs donné et aplatit les résultats en lignes.
- Voir aussi :
Syntaxe¶
STRTOK_SPLIT_TO_TABLE(<string> [,<delimiter_list>])
Arguments¶
Obligatoire :
string
Texte à tokeniser.
Facultatif :
delimiter_list
Ensemble de délimiteurs. En option. La valeur par défaut est un caractère d’espacement unique.
Renvoie¶
Cela renvoie une table.
Les lignes renvoyées sont constituées d’un ensemble fixe de colonnes :
+-----+-------+-------+ | SEQ | INDEX | VALUE | |-----+-------+-------|
- SEQ:
Un numéro de séquence unique associé à l’enregistrement d’entrée ; il n’est pas garanti que la séquence ne présente pas d’écart ou qu’elle soit ordonnée d’une manière particulière.
- INDEX:
Index de l’élément. Basé sur un.
- VALUE:
Valeur de l’élément du tableau aplati.
Note
Les colonnes de la table originale (corrélée) qui a servi de source de données pour cette fonction sont également accessibles. Si une seule ligne de la table d’origine a donné plusieurs lignes dans la vue aplatie, les valeurs de cette ligne d’entrée sont répliquées pour correspondre au nombre de lignes produites par STRTOK_SPLIT_TO_TABLE.
Exemples¶
Voici un exemple simple sur une entrée constante.
SELECT table1.value FROM table(strtok_split_to_table('a.b', '.')) AS table1 ORDER BY table1.value; +-------+ | VALUE | |-------| | a | | b | +-------+
Les deux exemples suivants utilisent la table et les données créées ci-dessous :
CREATE OR REPLACE TABLE splittable (v VARCHAR); INSERT INTO splittable (v) VALUES ('a b'), ('cde'), ('f|g'), ('');Cet exemple montre l’utilisation de la fonction sous forme de table corrélée :
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 | +-----+-----+-------+-------+Cet exemple est identique au précédent, à la différence près qu’il spécifie plusieurs délimiteurs :
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 | +-----+-----+-------+-------+