ARRAY_UNION
ファンクション
ARRAY_UNIONは複数の配列の和集合を返します。つまり、配列からすべての要素をマージし、重複を削除して新しい配列を返します。
Syntax
ARRAY_UNION(arr1, arr2, ..., arrN)
パラメータ
arr1, arr2, ..., arrN: 任意の数の配列入力で、すべてARRAY<T>型です。- すべての配列の要素型
Tは同じである必要があるか、統一された型に暗黙的に変換可能である必要があります。 - 要素型
Tは数値、文字列、日付/時刻、またはIP型にできます。
- すべての配列の要素型
Return Value
- 入力配列からのすべての一意の要素を含む
ARRAY<T>型の新しい配列を返します(重複は削除されます)。- 任意の入力パラメータが
NULLの場合、NULLを返します(例を参照)。
- 任意の入力パラメータが
Usage 注釈
- 重複の削除は等価比較(
=演算子)に基づいて行われます。 - 結果配列では1つの
NULLのみが保持されます(例を参照)。 - 入力配列自体が複数の同一要素を含む場合、1つのみが保持されます(例を参照)。
- 結果配列内の要素の順序は保証されません。
Examples
-
簡単な例
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を含む場合、出力配列は1つのNULLのみを含みます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"] |
+---------------------------------------------------------+ -
配列に重複する要素が含まれている場合、1つだけが返されます
SELECT ARRAY_UNION(ARRAY('hello', 'world', 'hello'), ARRAY('hello', NULL));
+------------------------------------------------------------+
| ARRAY_UNION(ARRAY('hello', 'world'), ARRAY('hello', NULL)) |
+------------------------------------------------------------+
| [null, "world", "hello"] |
+------------------------------------------------------------+