メインコンテンツまでスキップ

ARRAY_UNION

Function

ARRAY_UNIONは複数の配列の和集合を返します。つまり、配列からすべての要素をマージし、重複を削除して、新しい配列を返します。

Syntax

ARRAY_UNION(arr1, arr2, ..., arrN)

パラメータ

  • arr1, arr2, ..., arrN: 任意の数の配列入力、すべて ARRAY<T> 型。
    • すべての配列の要素型 T は同じであるか、統一された型に暗黙的に変換可能である必要があります。
    • 要素型 T は数値、文字列、日付/時刻、またはIP型にできます。

戻り値

  • 入力配列からのすべての一意の要素を含む ARRAY<T> 型の新しい配列を返します(重複は削除されます)。
    • 任意の入力パラメータが NULL の場合、NULL を返します(例を参照)。

使用上の注意

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

  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"] |
    +------------------------------------------------------------+