최종 수정: 에
ARRAY_UNION
기능
ARRAY_UNION은 여러 배열의 합집합을 반환합니다. 즉, 배열의 모든 요소를 병합하고 중복을 제거하여 새 배열을 반환합니다.
구문
ARRAY_UNION(arr1, arr2, ..., arrN)
매개변수
arr1, arr2, ..., arrN: 임의 개수의 배열 입력으로, 모두ARRAY<T>타입이어야 합니다.- 모든 배열의 요소 타입
T는 같거나 공통 타입으로 암시적으로 변환할 수 있어야 합니다. - 요소 타입
T는 숫자, 문자열, 날짜/시간 또는 IP 타입일 수 있습니다.
- 모든 배열의 요소 타입
반환 값
- 입력 배열의 모든 고유 요소를 포함하는
ARRAY<T>타입의 새 배열을 반환합니다(중복 제거).- 입력 매개변수 중 하나라도
NULL이면NULL을 반환합니다(예제 참고).
- 입력 매개변수 중 하나라도
사용 시 참고 사항
- 중복은 동등 비교(
=연산자)를 기준으로 제거합니다. - 결과 배열에는
NULL이 하나만 유지됩니다(예제 참고). - 입력 배열 자체에 동일한 요소가 여러 개 포함되어 있으면 하나만 유지됩니다(예제 참고).
- 결과 배열의 요소 순서는 보장되지 않습니다.
예제
-
간단한 예제
SELECT ARRAY_UNION(ARRAY('hello', 'world'), ARRAY('hello', 'world'));
+---------------------------------------------------------------+
| ARRAY_UNION(ARRAY('hello', 'world'), ARRAY('hello', 'world')) |
+---------------------------------------------------------------+
| ["world", "hello"] |
+---------------------------------------------------------------+
SELECT ARRAY_UNION(ARRAY(1, 2, 3), ARRAY(3, 5, 6));
+---------------------------------------------+
| ARRAY_UNION(ARRAY(1, 2, 3), ARRAY(3, 5, 6)) |
+---------------------------------------------+
| [1, 5, 2, 6, 3] |
+---------------------------------------------+ -
입력 배열 중 하나라도
NULL이면NULL을 반환합니다SELECT ARRAY_UNION(ARRAY('hello', 'world'), ARRAY('hello', 'world'), NULL);
+---------------------------------------------------------------------+
| ARRAY_UNION(ARRAY('hello', 'world'), ARRAY('hello', 'world'), NULL) |
+---------------------------------------------------------------------+
| NULL |
+---------------------------------------------------------------------+ -
입력 배열에
NULL이 포함되어 있으면 출력 배열에는NULL이 하나만 포함됩니다SELECT ARRAY_UNION(ARRAY('hello', 'world'), ARRAY('hello', NULL));
+---------------------------------------------------------------------+
| ARRAY_UNION(ARRAY('hello', 'world', 'hello'), ARRAY('hello', NULL)) |
+---------------------------------------------------------------------+
| [null, "world", "hello"] |
+---------------------------------------------------------------------+
SELECT ARRAY_UNION(ARRAY(NULL, 'world'), ARRAY('hello', NULL));
+---------------------------------------------------------+
| ARRAY_UNION(ARRAY(NULL, 'world'), ARRAY('hello', NULL)) |
+---------------------------------------------------------+
| [null, "world", "hello"] |
+---------------------------------------------------------+ -
배열에 중복 요소가 포함되어 있으면 하나만 반환합니다
SELECT ARRAY_UNION(ARRAY('hello', 'world', 'hello'), ARRAY('hello', NULL));
+------------------------------------------------------------+
| ARRAY_UNION(ARRAY('hello', 'world'), ARRAY('hello', NULL)) |
+------------------------------------------------------------+
| [null, "world", "hello"] |
+------------------------------------------------------------+