ARRAY_FLATTEN

ARRAY_FLATTEN

ARRAY_FLATTEN() 함수는 ARRAY들의 ARRAY를 단일 ARRAY로 평탄화(flatten)해요. 이 함수는 입력 ARRAY의 요소인 ARRAY들을 효과적으로 연결(concatenate)해 하나의 ARRAY로 반환해요.

출처: Snowflake SQL Reference

본문

문법

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

더 알아보기 (Learn more)