- Kategorien:
Zeichenfolgen- und Binärfunktionen (Allgemein), Tabellenfunktionen
STRTOK_SPLIT_TO_TABLE¶
Übersetzt eine Zeichenfolge mit den angegebenen Trennzeichen in Token und vereinfacht die Ergebnisse in Zeilen.
- Siehe auch:
Syntax¶
STRTOK_SPLIT_TO_TABLE(<string> [,<delimiter_list>])
Argumente¶
Benötigt:
string
Text, der in Token übersetzt werden soll.
Optional:
delimiter_list
Gruppe von Trennzeichen. Optional. Der Standardwert ist ein einzelnes Leerzeichen.
Rückgabewerte¶
Dies gibt eine Tabelle zurück.
Die zurückgegebenen Zeilen bestehen aus einer festen Menge von Spalten:
+-----+-------+-------+ | SEQ | INDEX | VALUE | |-----+-------+-------|
- SEQ:
Eine eindeutige Sequenznummer, die dem Eingabedatensatz zugeordnet ist; es ist nicht garantiert, dass die Sequenz lückenlos ist oder auf eine bestimmte Weise angeordnet wird.
- INDEX:
Der Index des Elements. Eins-basiert.
- VALUE:
Der Wert des Elements des vereinfachten Arrays.
Bemerkung
Die Spalten der ursprünglichen (korrelierten) Tabelle, die als Datenquelle für diese Funktion verwendet wurde, sind ebenfalls aufrufbar. Wenn eine einzelne Zeile der ursprünglichen Tabelle in der vereinfachten Ansicht zu mehreren Zeilen führt, werden die Werte in dieser Eingabezeile entsprechend der Zahl der von STRTOK_SPLIT_TO_TABLE erzeugten Zeilen repliziert.
Beispiele¶
Hier ist ein einfaches Beispiel für eine konstante Eingabe:
SELECT table1.value FROM table(strtok_split_to_table('a.b', '.')) AS table1 ORDER BY table1.value; +-------+ | VALUE | |-------| | a | | b | +-------+
In den folgenden zwei Beispielen werden die unten erstellten Tabellen und Daten verwendet:
CREATE OR REPLACE TABLE splittable (v VARCHAR); INSERT INTO splittable (v) VALUES ('a b'), ('cde'), ('f|g'), ('');Dieses Beispiel zeigt die Verwendung der Funktion als korrelierte Tabelle:
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 | +-----+-----+-------+-------+Dieses Beispiel ist dasselbe wie das vorherige, außer dass mehrere Trennzeichen angegeben sind:
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 | +-----+-----+-------+-------+