- カテゴリ:
半構造化データ関数と構造化データ関数 (配列/オブジェクト)
ARRAY_FLATTEN¶
ARRAYs の ARRAY を単一の ARRAY にフラット化します。この関数は、入力 ARRAY の要素である ARRAYs を効果的に連結し、1つの ARRAY として返します。
構文¶
ARRAY_FLATTEN( <array> )
引数¶
array
フラット化する ARRAYs の ARRAY。
array
のいずれかの要素が ARRAY でない場合、この関数はエラーを報告します。
戻り値¶
この関数は、 ARRAYs を array
で連結した ARRAY を返します。
array
が NULL であるか、または NULL である要素を含む場合、関数は NULL を返します。
使用上の注意¶
array
が入れ子になった ARRAYs の複数のレベルを含んでいる場合、この関数は入れ子の1レベルのみを削除します。例えば、入力 ARRAY が次の場合:
[ [ [1, 2], [3] ], [ [4], [5] ] ]
関数は次を返します:
[ [1, 2], [3], [4], [5] ]
例¶
次の例は、ARRAYs の ARRAY をフラット化します。入力 ARRAY の各要素は、数値の ARRAY です。この例では、入力 ARRAY を、数値を要素として含む ARRAY にフラット化しています。
SELECT ARRAY_FLATTEN([[1, 2, 3], [4], [5, 6]]);
+-----------------------------------------+
| ARRAY_FLATTEN([[1, 2, 3], [4], [5, 6]]) |
|-----------------------------------------|
| [ |
| 1, |
| 2, |
| 3, |
| 4, |
| 5, |
| 6 |
| ] |
+-----------------------------------------+
次の例は、ARRAYs を含む ARRAYs が含まれる ARRAY をフラット化しています。この関数は,最初のレベルの入れ子を削除します.
SELECT ARRAY_FLATTEN([[[1, 2], [3]], [[4], [5]]]);
+--------------------------------------------+
| ARRAY_FLATTEN([[[1, 2], [3]], [[4], [5]]]) |
|--------------------------------------------|
| [ |
| [ |
| 1, |
| 2 |
| ], |
| [ |
| 3 |
| ], |
| [ |
| 4 |
| ], |
| [ |
| 5 |
| ] |
| ] |
+--------------------------------------------+
次の例は、入力 ARRAY の要素が ARRAY でない場合に、関数がエラーを返すことを示しています。
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'
次の例は、入力 ARRAY の要素が NULL の場合に、関数が NULL を返すことを示しています。
SELECT ARRAY_FLATTEN([[1, 2, 3], NULL, [5, 6]]);
+------------------------------------------+
| ARRAY_FLATTEN([[1, 2, 3], NULL, [5, 6]]) |
|------------------------------------------|
| NULL |
+------------------------------------------+
次の例は、入力 ARRAY の要素が NULL 要素を含む ARRAY である場合に、関数が ARRAY をフラット化することを示しています。
SELECT ARRAY_FLATTEN([[1, 2, 3], [NULL], [5, 6]]);
+--------------------------------------------+
| ARRAY_FLATTEN([[1, 2, 3], [NULL], [5, 6]]) |
|--------------------------------------------|
| [ |
| 1, |
| 2, |
| 3, |
| undefined, |
| 5, |
| 6 |
| ] |
+--------------------------------------------+