- Kategorien:
Konvertierungsfunktionen , Funktionen für semistrukturierte und strukturierte Daten (Array/Objekt)
TO_ARRAY¶
Konvertiert den Eingabeausdruck in einen ARRAY-Wert.
Syntax¶
TO_ARRAY( <expr> )
Argumente¶
expr
Ein Ausdruck eines beliebigen Datentyps.
Rückgabewerte¶
Diese Funktion gibt einen Wert vom Typ ARRAY oder NULL zurück:
Wenn die Eingabe ein ARRAY oder eine VARIANT ist, die einen ARRAY-Wert enthält, wird der Wert unverändert zurückgegeben.
Wenn
expr
ein NULL- oder JSON-Null-Wert ist, gibt die Funktion NULL zurück.Für jeden anderen Wert ist der zurückgegebene Wert ein Array mit einem Element, das diesen Wert enthält.
Nutzungshinweise¶
Um ein Array zu erstellen, das mehr als ein Element enthält, können Sie ARRAY_CONSTRUCT oder STRTOK_TO_ARRAY verwenden.
Beispiele¶
Erstellen Sie eine Tabelle und fügen Sie Daten ein, indem Sie die Funktion TO_ARRAY aufrufen:
CREATE OR REPLACE TABLE array_demo_2 (
ID INTEGER,
array1 ARRAY,
array2 ARRAY);
INSERT INTO array_demo_2 (ID, array1, array2)
SELECT 1, TO_ARRAY(1), TO_ARRAY(3);
SELECT * FROM array_demo_2;
+----+--------+--------+
| ID | ARRAY1 | ARRAY2 |
|----+--------+--------|
| 1 | [ | [ |
| | 1 | 3 |
| | ] | ] |
+----+--------+--------+
Führen Sie eine Abfrage aus, die die beim Einfügen erstellten Arrays mit einem Element und das Ergebnis des Aufrufs von ARRAY_CAT zur Verkettung der beiden Arrays anzeigt:
SELECT array1, array2, ARRAY_CAT(array1, array2)
FROM array_demo_2;
+--------+--------+---------------------------+
| ARRAY1 | ARRAY2 | ARRAY_CAT(ARRAY1, ARRAY2) |
|--------+--------+---------------------------|
| [ | [ | [ |
| 1 | 3 | 1, |
| ] | ] | 3 |
| | | ] |
+--------+--------+---------------------------+
Dieses Beispiel zeigt, dass TO_ARRAY einen Zeichenfolgen-Eingabeausdruck in ein Array mit einem einzigen Element umwandelt, selbst wenn der Eingabeausdruck Trennzeichen (wie Kommas) enthält:
SELECT TO_ARRAY('snowman,snowball,snowcone') AS to_array_result;
+-------------------------------+
| TO_ARRAY_RESULT |
|-------------------------------|
| [ |
| "snowman,snowball,snowcone" |
| ] |
+-------------------------------+
Um denselben Zeichenfolgen-Eingabeausdruck in ein Array mit mehreren Elementen umzuwandeln, können Sie die Funktion STRTOK_TO_ARRAY verwenden:
SELECT STRTOK_TO_ARRAY('snowman,snowball,snowcone', ',') AS strtok_to_array_result;
+------------------------+
| STRTOK_TO_ARRAY_RESULT |
|------------------------|
| [ |
| "snowman", |
| "snowball", |
| "snowcone" |
| ] |
+------------------------+