カテゴリ:

半構造化データ関数 (配列/オブジェクト)

ARRAYS_OVERLAP

2つの配列に共通の要素が少なくとも1つあるかどうかを比較します。共通の要素が少なくとも1つある場合は TRUE を返します。そうでない場合は FALSEを返します。この関数は NULL-safeです。つまり、 NULLs を等値比較の既知の値として扱います。

構文

ARRAYS_OVERLAP( <array1> , <array2> )

使用上の注意

  • オブジェクトを比較する場合、 TRUE を返すためにはオブジェクトは同一でなければなりません。詳細については、 (このトピック)をご参照ください。

次にいくつかの例を示します。

SELECT ARRAYS_OVERLAP(array_construct('hello', 'aloha'), 
                      array_construct('hello', 'hi', 'hey'))
  AS Overlap;
+---------+
| OVERLAP |
|---------|
| True    |
+---------+
SELECT ARRAYS_OVERLAP(array_construct('hello', 'aloha'), 
                      array_construct('hola', 'bonjour', 'ciao'))
  AS Overlap;
+---------+
| OVERLAP |
|---------|
| False   |
+---------+
SELECT ARRAYS_OVERLAP(array_construct(object_construct('a',1,'b',2), 1, 2), 
                      array_construct(object_construct('b',2,'c',3), 3, 4))
  AS Overlap;
+---------+
| OVERLAP |
|---------|
| False   |
+---------+
SELECT ARRAYS_OVERLAP(array_construct(object_construct('a',1,'b',2), 1, 2), 
                      array_construct(object_construct('a',1,'b',2), 3, 4))
  AS Overlap;
+---------+
| OVERLAP |
|---------|
| True    |
+---------+

次の例は、 NULL 値が他の NULL 値と等しいと見なされることを示しています。各配列に NULL 値が含まれている場合、他(NULL以外)の値がオーバーラップしていなくても、配列はオーバーラップします。

SELECT ARRAYS_OVERLAP(ARRAY_CONSTRUCT(1, 2, NULL),
                      ARRAY_CONSTRUCT(3, NULL, 5))
 AS Overlap;
+---------+
| OVERLAP |
|---------|
| True    |
+---------+