に最終更新
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"] |
+------------------------------------------------------------+