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> )
Copy

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] ]
    
    Copy

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]]);
Copy
+-----------------------------------------+
| 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]]]);
Copy
+--------------------------------------------+
| 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]]);
Copy
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]]);
Copy
+------------------------------------------+
| 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]]);
Copy
+--------------------------------------------+
| ARRAY_FLATTEN([[1, 2, 3], [NULL], [5, 6]]) |
|--------------------------------------------|
| [                                          |
|   1,                                       |
|   2,                                       |
|   3,                                       |
|   undefined,                               |
|   5,                                       |
|   6                                        |
| ]                                          |
+--------------------------------------------+