- 类别:
半结构化和结构化数据函数 (数组/对象)
ARRAYS_OVERLAP¶
比较两个数组是否至少有一个共同元素。如果至少有一个共同元素,则返回 TRUE;否则返回 FALSE。该函数为 NULL-safe,意味着它将 NULLs 视作用于比较相等性的已知值。
- 另请参阅:
语法¶
ARRAYS_OVERLAP( <array1> , <array2> )
使用说明¶
比较对象时,对象必须相同才能返回 TRUE。有关详细信息,请参阅 示例 (本主题内容)。
如果要传递结构化 ARRAYs,则第二个实参内的 ARRAY 必须与第一个实参中的 :ref:` <label-structured_types_compare_struct_struct>属于同类 ` 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 | +---------+