- Catégories :
Fonctions de chaîne et fonctions binaires (général) , Fonctions de table
SPLIT_TO_TABLE¶
Cette fonction de table divise une chaîne (en fonction d’un délimiteur spécifié) et aplatit les résultats en lignes.
- Voir aussi :
Syntaxe¶
SPLIT_TO_TABLE(<string>, <delimiter>)
Arguments¶
string
Texte à scinder.
delimiter
Texte servant à scinder.
Renvoie¶
La valeur renvoyée est 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
La requête peut également accéder aux colonnes de la table d’origine (corrélée) ayant servi de source de données pour cette fonction. 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 SPLIT_TO_TABLE.
Exemples¶
Voici un exemple simple sur une entrée constante.
SELECT table1.value FROM table(split_to_table('a.b', '.')) AS table1 ORDER BY table1.value; +-------+ | VALUE | |-------| | a | | b | +-------+
L’exemple suivant utilise la table et les données créées ci-dessous :
CREATE OR REPLACE TABLE splittable (v VARCHAR); INSERT INTO splittable (v) VALUES ('a.b.c'), ('d'), ('');Cette requête montre l’utilisation de la fonction en tant que table corrélée :
SELECT * FROM splittable, LATERAL SPLIT_TO_TABLE(splittable.v, '.') ORDER BY SEQ, INDEX; +-------+-----+-------+-------+ | V | SEQ | INDEX | VALUE | |-------+-----+-------+-------| | a.b.c | 1 | 1 | a | | a.b.c | 1 | 2 | b | | a.b.c | 1 | 3 | c | | d | 2 | 1 | d | | | 3 | 1 | | +-------+-----+-------+-------+