Categorias:

Funções de dados semiestruturados e estruturados (Matriz/objeto)

ARRAYS_OVERLAP

Compara se duas matrizes têm pelo menos um elemento em comum. Retorna TRUE se houver pelo menos um elemento em comum; caso contrário, retorna FALSE. A função é NULL-safe, ou seja, trata NULLs como valores conhecidos para comparar a igualdade.

Consulte também:

ARRAY_INTERSECTION

Sintaxe

ARRAYS_OVERLAP( <array1> , <array2> )
Copy

Notas de uso

  • Ao comparar objetos, eles devem ser idênticos para retornar TRUE. Para obter mais detalhes, consulte Exemplos (neste tópico).

  • Se você estiver passando ARRAYs estruturadas, a ARRAY no segundo argumento deverá ser comparável à ARRAY no primeiro argumento.

Exemplos

Aqui estão alguns exemplos:

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

O exemplo seguinte mostra que os valores NULL são considerados iguais a outros valores NULL. Se cada matriz contiver um valor NULL, então as matrizes se sobrepõem, mesmo que nenhum outro valor (diferente de NULL) se sobreponha:

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