- 카테고리:
반정형 및 정형 데이터 함수 (배열/오브젝트 만들기 및 조작)
ARRAYS_ZIP¶
각각 입력 배열의 n번째 요소에 대한 키-값 페어를 포함하는 오브젝트 로 구성된 배열 을 반환합니다. 예를 들어 반환된 배열에서 첫 번째 오브젝트는 입력 배열에서 각 첫 번째 요소의 키-값 페어를 포함하고, 두 번째 오브젝트는 입력 배열에서 각 두 번째 요소의 키-값 페어를 포함하는 식입니다.
구문¶
ARRAYS_ZIP( <array> [ , <array> ... ] )
인자¶
array
입력 배열.
입력 배열의 길이는 다양할 수 있습니다.
입력 배열 중 하나라도 정형 배열 인 경우 모든 입력 배열은 정형 배열이어야 합니다.
반환¶
다음 타입 중 하나의 값을 반환합니다.
입력 배열이 반정형 배열인 경우 이 함수는 정형 오브젝트로 구성된 반정형 배열을 반환합니다.
입력 배열이 정형 배열인 경우 이 함수는 정형 오브젝트로 구성된 정형 배열을 반환합니다. 정형 오브젝트의 정의는 입력 배열의 수와 배열에 있는 값의 유형에 따라 달라집니다.
입력 배열 중 하나라도 NULL이면 이 함수는 NULL을 반환합니다.
각 오브젝트에는 입력 배열의 n번째 요소 값에 대한 키-값 페어가 포함됩니다. 키($1
, $2
등)는 입력 배열의 위치를 나타냅니다.
예를 들어, 다음 배열을 전달한다고 가정하겠습니다.
SELECT ARRAYS_ZIP(
[1, 2, 3],
['first', 'second', 'third'],
['i', 'ii', 'iii']
) AS zipped_arrays;
이 함수는 다음과 같은 오브젝트 배열을 반환합니다.
+---------------------+
| ZIPPED_ARRAYS |
|---------------------|
| [ |
| { |
| "$1": 1, |
| "$2": "first", |
| "$3": "i" |
| }, |
| { |
| "$1": 2, |
| "$2": "second", |
| "$3": "ii" |
| }, |
| { |
| "$1": 3, |
| "$2": "third", |
| "$3": "iii" |
| } |
| ] |
+---------------------+
반환된 배열에서는 다음과 같습니다.
첫 번째 오브젝트에는 모든 입력 배열의 첫 번째 요소가 포함됩니다.
두 번째 오브젝트에는 모든 입력 배열의 두 번째 요소가 포함됩니다.
세 번째 오브젝트에는 모든 입력 배열의 세 번째 요소가 포함됩니다.
오브젝트의 키는 입력 배열을 식별합니다.
$1
키-값 페어에는 첫 번째 입력 배열의 값이 포함됩니다.$2
키-값 페어에는 두 번째 입력 배열의 값이 포함됩니다.$3
키-값 페어에는 세 번째 입력 배열의 값이 포함됩니다.
사용법 노트¶
반환된 배열의 길이는 가장 긴 입력 배열의 길이와 같습니다. 일부 입력 배열이 더 짧은 경우 이 함수는 더 짧은 배열에서 누락된 나머지 요소에 대해 JSON null 을 사용합니다.
입력 배열에 NULL 요소가 포함된 경우 이 함수는 해당 요소에 대해 JSON null을 반환합니다.
예¶
다음 예에서는 함수의 작동 방식을 보여줍니다.
단일 입력 배열¶
다음 예에서는 단일 배열의 첫 번째, 두 번째, 세 번째 요소를 포함하는 오브젝트로 구성된 배열을 반환합니다.
SELECT ARRAYS_ZIP(
[1, 2, 3]
) AS zipped_array;
+--------------+
| ZIPPED_ARRAY |
|--------------|
| [ |
| { |
| "$1": 1 |
| }, |
| { |
| "$1": 2 |
| }, |
| { |
| "$1": 3 |
| } |
| ] |
+--------------+
다중 입력 배열¶
다음 예에서는 입력 배열의 첫 번째, 두 번째, 세 번째 요소를 포함하는 오브젝트로 구성된 배열을 반환합니다.
SELECT ARRAYS_ZIP(
[1, 2, 3],
[10, 20, 30],
[100, 200, 300]
) AS zipped_array;
+---------------+
| ZIPPED_ARRAY |
|---------------|
| [ |
| { |
| "$1": 1, |
| "$2": 10, |
| "$3": 100 |
| }, |
| { |
| "$1": 2, |
| "$2": 20, |
| "$3": 200 |
| }, |
| { |
| "$1": 3, |
| "$2": 30, |
| "$3": 300 |
| } |
| ] |
+---------------+
다양한 길이의 입력 배열¶
다음 예에서는 다양한 길이의 입력 배열을 전달합니다. 더 짧은 배열에는 없는 값의 경우 이 함수는 오브젝트에서 JSON null을 사용합니다.
SELECT ARRAYS_ZIP(
[1, 2, 3],
['one'],
['I', 'II']
) AS zipped_array;
+------------------+
| ZIPPED_ARRAY |
|------------------|
| [ |
| { |
| "$1": 1, |
| "$2": "one", |
| "$3": "I" |
| }, |
| { |
| "$1": 2, |
| "$2": null, |
| "$3": "II" |
| }, |
| { |
| "$1": 3, |
| "$2": null, |
| "$3": null |
| } |
| ] |
+------------------+
NULL 및 빈 배열 처리¶
다음 예에서 보듯이, 모든 입력 배열에 대해 NULL을 전달할 경우 이 함수는 SQL NULL을 반환합니다.
SELECT ARRAYS_ZIP(
[1, 2, 3],
NULL,
[100, 200, 300]
) AS zipped_array;
+--------------+
| ZIPPED_ARRAY |
|--------------|
| NULL |
+--------------+
다음 예에서는 모든 입력 배열이 비어 있으므로 이 함수는 빈 오브젝트를 반환하게 됩니다.
SELECT ARRAYS_ZIP(
[], [], []
) AS zipped_array;
+--------------+
| ZIPPED_ARRAY |
|--------------|
| [ |
| {} |
| ] |
+--------------+
다음 예에서 입력 배열의 일부 요소는 NULL입니다. 반환된 오브젝트에서 이러한 요소의 값은 JSON null입니다.
SELECT ARRAYS_ZIP(
[1, NULL, 3],
[NULL, 20, NULL],
[100, NULL, 300]
) AS zipped_array;
+-----------------+
| ZIPPED_ARRAY |
|-----------------|
| [ |
| { |
| "$1": 1, |
| "$2": null, |
| "$3": 100 |
| }, |
| { |
| "$1": null, |
| "$2": 20, |
| "$3": null |
| }, |
| { |
| "$1": 3, |
| "$2": null, |
| "$3": 300 |
| } |
| ] |
+-----------------+