카테고리:

반정형 및 정형 데이터 함수 (배열/오브젝트)

ARRAY_FLATTEN

여러 ARRAY로 구성된 ARRAY 를 단일 ARRAY로 평면화합니다. 이 함수는 입력 ARRAY의 요소인 ARRAYs를 효과적으로 연결하고 이를 단일 ARRAY로 반환합니다.

구문

ARRAY_FLATTEN( <array> )
Copy

인자

array

평면화할 ARRAYs의 ARRAY입니다.

array 의 요소가 ARRAY가 아닌 경우 이 함수는 오류를 보고합니다.

반환

이 함수는 array 에서 ARRAYs를 연결하여 생성된 ARRAY를 반환합니다.

array 가 NULL이거나 NULL인 요소를 포함하는 경우 이 함수는 NULL을 반환합니다.

사용법 노트

  • array 에 여러 수준의 중첩된 ARRAYs가 포함된 경우 이 함수는 한 수준의 중첩만 제거합니다.

    예를 들어 입력 ARRAY가 다음과 같은 경우

    [ [ [1, 2], [3] ], [ [4], [5] ] ]
    

    이 함수는 다음을 반환합니다.

    [ [1, 2], [3], [4], [5] ]
    
    Copy

다음 예에서는 ARRAYs의 ARRAY를 평면화합니다. 입력 ARRAY의 각 요소는 숫자로 구성된 ARRAY입니다. 이 예에서는 입력 ARRAY를 숫자를 요소로 포함하는 ARRAY로 평면화합니다.

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

다음 예에서는 입력 ARRAY의 요소가 ARRAY가 아닌 경우 함수가 오류를 반환하는 것을 보여줍니다.

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'

다음 예에서는 입력 ARRAY의 요소가 NULL인 경우 함수가 NULL을 반환하는 것을 보여줍니다.

SELECT ARRAY_FLATTEN([[1, 2, 3], NULL, [5, 6]]);
Copy
+------------------------------------------+
| ARRAY_FLATTEN([[1, 2, 3], NULL, [5, 6]]) |
|------------------------------------------|
| NULL                                     |
+------------------------------------------+

다음 예에서는 입력 ARRAY의 요소가 NULL 요소를 포함하는 ARRAY인 경우 함수가 ARRAY를 평면화하는 것을 보여줍니다.

SELECT ARRAY_FLATTEN([[1, 2, 3], [NULL], [5, 6]]);
Copy
+--------------------------------------------+
| ARRAY_FLATTEN([[1, 2, 3], [NULL], [5, 6]]) |
|--------------------------------------------|
| [                                          |
|   1,                                       |
|   2,                                       |
|   3,                                       |
|   undefined,                               |
|   5,                                       |
|   6                                        |
| ]                                          |
+--------------------------------------------+