- Kategorien:
Funktionen für semistrukturierte und strukturierte Daten (Array/Objekt)
ARRAY_FLATTEN¶
Vereinfacht ein ARRAY von ARRAYs zu einem einzigen ARRAY. Die Funktion verkettet effektiv die ARRAYs, die Elemente des Eingabe-ARRAY sind, und gibt sie als ein einziges ARRAY zurück.
Syntax¶
ARRAY_FLATTEN( <array> )
Argumente¶
array
Die ARRAY von ARRAYs zu vereinfachen.
Wenn ein Element von
array
kein ARRAY ist, meldet die Funktion einen Fehler.
Rückgabewerte¶
Diese Funktion gibt ein ARRAY zurück, das durch Verkettung der ARRAYs in array
gebildet wird.
Wenn array
NULL ist oder Elemente enthält, die NULL sind, gibt die Funktion NULL zurück.
Nutzungshinweise¶
Wenn
array
mehrere Ebenen von verschachtelten ARRAYs enthält, entfernt die Funktion nur eine Ebene der Verschachtelung.Zum Beispiel, wenn das Eingabe-ARRAY wie folgt lautet:
[ [ [1, 2], [3] ], [ [4], [5] ] ]
Dann gibt die Funktion Folgendes zurück:
[ [1, 2], [3], [4], [5] ]
Beispiele¶
Im folgenden Beispiel wird ein ARRAY von ARRAYs vereinfacht. Jedes Element im Eingabe-ARRAY ist ein ARRAY von Zahlen. Im Beispiel wird das Eingabe-ARRAY in ein ARRAY vereinfacht, das die Zahlen als Elemente enthält.
SELECT ARRAY_FLATTEN([[1, 2, 3], [4], [5, 6]]);
+-----------------------------------------+
| ARRAY_FLATTEN([[1, 2, 3], [4], [5, 6]]) |
|-----------------------------------------|
| [ |
| 1, |
| 2, |
| 3, |
| 4, |
| 5, |
| 6 |
| ] |
+-----------------------------------------+
Im folgenden Beispiel wird ein ARRAY, das ARRAYs enthält, mit ARRAYs vereinfacht. Die Funktion entfernt die erste Ebene der Verschachtelung.
SELECT ARRAY_FLATTEN([[[1, 2], [3]], [[4], [5]]]);
+--------------------------------------------+
| ARRAY_FLATTEN([[[1, 2], [3]], [[4], [5]]]) |
|--------------------------------------------|
| [ |
| [ |
| 1, |
| 2 |
| ], |
| [ |
| 3 |
| ], |
| [ |
| 4 |
| ], |
| [ |
| 5 |
| ] |
| ] |
+--------------------------------------------+
Das folgende Beispiel zeigt, dass die Funktion einen Fehler zurückgibt, wenn ein Element des Eingabe-ARRAY kein ARRAY ist.
SELECT ARRAY_FLATTEN([[1, 2, 3], 4, [5, 6]]);
100107 (22000): Not an array: 'Input argument to ARRAY_FLATTEN is not an array of arrays'
Das folgende Beispiel zeigt, dass die Funktion NULL zurückgibt, wenn ein Element des Eingabe-ARRAY NULL ist.
SELECT ARRAY_FLATTEN([[1, 2, 3], NULL, [5, 6]]);
+------------------------------------------+
| ARRAY_FLATTEN([[1, 2, 3], NULL, [5, 6]]) |
|------------------------------------------|
| NULL |
+------------------------------------------+
Das folgende Beispiel zeigt, dass die Funktion ein ARRAY vereinfacht, wenn ein Element des Eingabe-ARRAY ein ARRAY ist, das ein NULL-Element enthält.
SELECT ARRAY_FLATTEN([[1, 2, 3], [NULL], [5, 6]]);
+--------------------------------------------+
| ARRAY_FLATTEN([[1, 2, 3], [NULL], [5, 6]]) |
|--------------------------------------------|
| [ |
| 1, |
| 2, |
| 3, |
| undefined, |
| 5, |
| 6 |
| ] |
+--------------------------------------------+