ARRAY_FLATTEN
ARRAY_FLATTEN
ARRAY_FLATTEN() 함수는 ARRAY들의 ARRAY를 단일 ARRAY로 평탄화(flatten)해요. 이 함수는 입력 ARRAY의 요소인 ARRAY들을 효과적으로 연결(concatenate)해 하나의 ARRAY로 반환해요.
본문
문법
ARRAY_FLATTEN( <array> )
인자
array — 평탄화할 ARRAY들의 ARRAY예요.
array의 어떤 요소가 ARRAY가 아니면 함수는 오류를 보고해요.
반환
이 함수는 array 안의 ARRAY들을 연결해 만든 ARRAY를 반환해요.
array가 NULL이거나 NULL인 요소를 포함하면 함수는 NULL을 반환해요.
사용 노트
array가 여러 수준의 중첩 ARRAY를 포함하면 함수는 중첩 한 수준만 제거해요.
예를 들어 입력 ARRAY가:
[ [ [1, 2], [3] ], [ [4], [5] ] ]
함수는 다음을 반환해요:
[ [1, 2], [3], [4], [5] ]
예제
다음 예제는 ARRAY들의 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 |
| ] |
+-----------------------------------------+
다음 예제는 ARRAY를 포함하는 ARRAY를 포함하는 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일 때 함수가 평탄화하는 것을 보여줘요.
SELECT ARRAY_FLATTEN([[1, 2, 3], [NULL], [5, 6]]);
+--------------------------------------------+
| ARRAY_FLATTEN([[1, 2, 3], [NULL], [5, 6]]) |
|--------------------------------------------|
| [ |
| 1, |
| 2, |
| 3, |
| undefined, |
| 5, |
| 6 |
| ] |
+--------------------------------------------+