类别:

半结构化和结构化数据函数 (数组/对象)

ARRAYS_OVERLAP

比较两个数组是否至少有一个共同元素。如果至少有一个共同元素,则返回 TRUE;否则返回 FALSE。该函数为 NULL-safe,意味着它将 NULLs 视作用于比较相等性的已知值。

另请参阅:

ARRAY_INTERSECTION

语法

ARRAYS_OVERLAP( <array1> , <array2> )
Copy

使用说明

  • 比较对象时,对象必须相同才能返回 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    |
+---------+
Copy

下面的示例展示可视为等同于其他 NULL 值的 NULL 值。如果每个数组都包含一个 NULL 值,则数组会重叠,即使没有其他(非 NULL)值重叠:

SELECT ARRAYS_OVERLAP(ARRAY_CONSTRUCT(1, 2, NULL),
                      ARRAY_CONSTRUCT(3, NULL, 5))
 AS Overlap;
+---------+
| OVERLAP |
|---------|
| True    |
+---------+
Copy
语言: 中文