- Kategorien:
Funktionen für semistrukturierte und strukturierte Daten (Array/Objekt)
ARRAY_APPEND¶
Gibt ein Array zurück, das alle Elemente des Quellarrays sowie das neue Element enthält. Das neue Element befindet sich am Ende des Arrays.
- Siehe auch:
Syntax¶
ARRAY_APPEND( <array> , <new_element> )
Argumente¶
array
Das Quellarray.
new_element
Das Element, das angehängt werden soll. Der Typ des Elements hängt vom Typ des Arrays ab:
Wenn
array
ein semistrukturiertes Array ist, kann das Element fast jeden Datentyp haben. Der Datentyp kann sich von dem/den Datentyp(en) der vorhandenen Elemente im Array unterscheiden.Wenn
array
ein strukturiertes Array ist, muss der Typ des neuen Elements implizit umwandelbar (Koersion) in den Typ des Arrays sein.
Rückgabewerte¶
Der Datentyp des zurückgegebenen Werts ist ARRAY.
Wenn Sie der Funktion ein strukturiertes Array übergeben, gibt die Funktion ein strukturiertes Array desselben Typs zurück.
Wenn das Quellarray NULL ist, gibt die Funktion NULL zurück.
Beispiele¶
Die Beispiele verwenden die folgende Tabelle mit einer ARRAY-Spalte:
CREATE OR REPLACE TABLE array_append_examples (array_column ARRAY);
INSERT INTO array_append_examples (array_column)
SELECT ARRAY_CONSTRUCT(1, 2, 3);
SELECT * FROM array_append_examples;
+--------------+
| ARRAY_COLUMN |
|--------------|
| [ |
| 1, |
| 2, |
| 3 |
| ] |
+--------------+
Fügen Sie dem Array ein Element desselben Typs hinzu:
UPDATE array_append_examples
SET array_column = ARRAY_APPEND(array_column, 4);
Fragen Sie die Tabelle ab, um das neue Element anzuzeigen, das dem Array hinzugefügt wurde:
SELECT * FROM array_append_examples;
+--------------+
| ARRAY_COLUMN |
|--------------|
| [ |
| 1, |
| 2, |
| 3, |
| 4 |
| ] |
+--------------+
Fügen Sie dem Array ein Element eines anderen Typs hinzu:
UPDATE array_append_examples
SET array_column = ARRAY_APPEND(array_column, 'five');
Fragen Sie die Tabelle ab, um das neue Element, das dem Array hinzugefügt wurde, und den Datentyp jedes Elements im Array anzuzeigen:
SELECT array_column,
ARRAY_CONSTRUCT(
TYPEOF(array_column[0]),
TYPEOF(array_column[1]),
TYPEOF(array_column[2]),
TYPEOF(array_column[3]),
TYPEOF(array_column[4])) AS type
FROM array_append_examples;
+--------------+--------------+
| ARRAY_COLUMN | TYPE |
|--------------+--------------|
| [ | [ |
| 1, | "INTEGER", |
| 2, | "INTEGER", |
| 3, | "INTEGER", |
| 4, | "INTEGER", |
| "five" | "VARCHAR" |
| ] | ] |
+--------------+--------------+