- Kategorien:
Zeichenfolgen- und Binärfunktionen (Allgemein)
SPLIT¶
Teilt eine gegebene Zeichenfolge mit einem gegebenen Trennzeichen und gibt das Ergebnis in einem Array von Zeichenfolgen zurück.
Zusammenhängende geteilte Zeichenfolgen in der Quellzeichenfolge oder das Vorhandensein einer geteilten Zeichenfolge am Anfang oder Ende der Ergebnisse der Quellzeichenfolge führt zu einer leeren Zeichenfolge in der Ausgabe. Eine leere geteilte Zeichenfolge führt zu einem Array, das nur die Quellzeichenfolge enthält. Wenn einer der Parameter NULL ist, wird NULL zurückgegeben.
Das Ergebnis kann mit Funktionen und Konstrukten verwendet werden, die semistrukturierte Daten verarbeiten (z. B. FLATTEN und ARRAY_SIZE).
- Siehe auch::
Syntax¶
SPLIT(<string>, <separator>)
Argumente¶
string
In Teile aufzuteilender Text.
separator
Text, anhand dessen die Zeichenfolge aufgeteilt werden soll.
Rückgabewerte¶
Der Datentyp des zurückgegebenen Werts ist ARRAY.
Sortierungsdetails¶
Diese Funktion bietet keine Unterstützung für folgende Sortierungsspezifikationen:
pi
(ohne Beachtung der Interpunktion)cs-ai
(Beachtung von Groß-/Kleinschreibung, keine Beachtung von Akzenten)
Die Werte im Ausgabearray enthalten keine Sortierungsspezifikation und unterstützen daher keine weiteren Sortierungsoperationen.
Bemerkung
Um diese Funktion mit einer Spalte zu verwenden, die die Sortierungsspezifizierer upper
oder lower
aufweist, müssen Sie Verhaltensänderungs-Bundle 2024_02 in Ihrem Konto aktivieren.
Um dieses Bundle in Ihrem Konto zu aktivieren, führen Sie die folgende Anweisung aus:
SELECT SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE('2024_02');
Beispiele¶
Aufteilen der Localhost-IP-Adresse 127.0.0.1
in ein Array, das aus jedem der vier Teile besteht:
SELECT SPLIT('127.0.0.1', '.'); +-------------------------+ | SPLIT('127.0.0.1', '.') | |-------------------------| | [ | | "127", | | "0", | | "0", | | "1" | | ] | +-------------------------+
Teilen Sie eine Zeichenfolge auf, die vertikale Linien als Trennzeichen enthält (beachten Sie, dass die Ausgabe leere Zeichenfolgen enthält):
SELECT SPLIT('|a||', '|'); +--------------------+ | SPLIT('|A||', '|') | |--------------------| | [ | | "", | | "a", | | "", | | "" | | ] | +--------------------+
Verwenden Sie das Ergebnis von SPLIT, um mit dem Konstrukt LATERAL FLATTEN mehrere Datensätze aus einer einzigen Zeichenfolge zu generieren. FLATTEN ist eine Tabellenfunktion, die eine VARIANT-, OBJECT- oder ARRAY-Spalte verwendet und eine laterale Ansicht erzeugt (d. h. eine Inline-Ansicht, die eine Korrelation enthält, die auf andere Tabellen verweist, die in der FROM-Klausel vorangehen):
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 | ------+-----------+