- カテゴリ:
半構造化データ関数と構造化データ関数 (配列/オブジェクト)
ARRAYS_OVERLAP¶
2つの配列に共通の要素が少なくとも1つあるかどうかを比較します。共通の要素が少なくとも1つある場合は TRUE を返します。そうでない場合は FALSEを返します。この関数は NULL-safeです。つまり、 NULLs を等値比較の既知の値として扱います。
- こちらもご参照ください。
構文¶
ARRAYS_OVERLAP( <array1> , <array2> )
使用上の注意¶
オブジェクトを比較する場合、 TRUE を返すにはオブジェクトは同一でなければなりません。詳細については、 例 (このトピック内)をご参照ください。
構造化 ARRAYs を渡す場合、第2引数の ARRAY は第1引数の ARRAY と 比較可能 である必要があります。
例¶
次にいくつかの例を示します。
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 | +---------+