メインコンテンツまでスキップ
バージョン: 26.x

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. 重複の削除は等価比較(=演算子)に基づいて行われます。
  2. 結果配列では1つのNULLのみが保持されます(例を参照)。
  3. 入力配列自体が複数の同一要素を含む場合、1つのみが保持されます(例を参照)。
  4. 結果配列内の要素の順序は保証されません。

Examples

  1. 簡単な例

    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. いずれかの入力配列がNULLの場合、NULLを返します

    SELECT ARRAY_UNION(ARRAY('hello', 'world'), ARRAY('hello', 'world'), NULL); 
    +---------------------------------------------------------------------+
    | ARRAY_UNION(ARRAY('hello', 'world'), ARRAY('hello', 'world'), NULL) |
    +---------------------------------------------------------------------+
    | NULL |
    +---------------------------------------------------------------------+
  3. 入力配列が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"] |
    +---------------------------------------------------------+
  4. 配列に重複する要素が含まれている場合、1つだけが返されます

    SELECT ARRAY_UNION(ARRAY('hello', 'world', 'hello'), ARRAY('hello', NULL)); 
    +------------------------------------------------------------+
    | ARRAY_UNION(ARRAY('hello', 'world'), ARRAY('hello', NULL)) |
    +------------------------------------------------------------+
    | [null, "world", "hello"] |
    +------------------------------------------------------------+