blob: f912fd5b9856dab58a37c5592303b9d948fc1e66 [file] [log] [blame] [view]
---
{
"title": "ARRAY_UNION",
"language": "en",
"description": "ARRAYUNION returns the union of multiple arrays, i.e., merges all elements from the arrays, removes duplicates, and returns a new array."
}
---
## Function
`ARRAY_UNION` returns the union of multiple arrays, i.e., merges all elements from the arrays, removes duplicates, and returns a new array.
## Syntax
```SQL
ARRAY_UNION(arr1, arr2, ..., arrN)
```
## Parameters
- `arr1, arr2, ..., arrN`: Any number of array inputs, all of type `ARRAY<T>`.
- The element type `T` of all arrays must be the same, or implicitly convertible to a unified type.
- The element type `T` can be numeric, string, date/time, or IP type.
## Return Value
- Returns a new array of type `ARRAY<T>` containing all unique elements from the input arrays (duplicates removed).
- If any input parameter is `NULL`, returns `NULL` (see example).
## Usage Notes
1. Duplicate removal is based on equality comparison (`=` operator).
2. Only one `NULL` will be kept in the result array (see example).
3. If the input array itself contains multiple identical elements, only one will be kept (see example).
4. The order of elements in the result array is not guaranteed.
## Examples
1. Simple example
```SQL
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] |
+---------------------------------------------+
```
2. If any input array is `NULL`, returns `NULL`
```SQL
SELECT ARRAY_UNION(ARRAY('hello', 'world'), ARRAY('hello', 'world'), NULL);
+---------------------------------------------------------------------+
| ARRAY_UNION(ARRAY('hello', 'world'), ARRAY('hello', 'world'), NULL) |
+---------------------------------------------------------------------+
| NULL |
+---------------------------------------------------------------------+
```
3. If input arrays contain `NULL`, the output array will contain only one `NULL`
```SQL
SELECT ARRAY_UNION(ARRAY('hello', 'world'), ARRAY('hello', NULL));
+------------------------------------------------------------+
| ARRAY_UNION(ARRAY('hello', 'world'), 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"] |
+---------------------------------------------------------+
```
4. If an array contains duplicate elements, only one will be returned
```SQL
SELECT ARRAY_UNION(ARRAY('hello', 'world', 'hello'), ARRAY('hello', NULL));
+------------------------------------------------------------+
| ARRAY_UNION(ARRAY('hello', 'world'), ARRAY('hello', NULL)) |
+------------------------------------------------------------+
| [null, "world", "hello"] |
+------------------------------------------------------------+
```