Catégories :

Fonctions de données semi-structurées et structurées (tableau/objet)

ARRAYS_OVERLAP

Compare si deux tableaux ont au moins un élément en commun. Renvoie TRUE s’il existe au moins un élément en commun ; sinon, renvoie FALSE. La fonction est NULL-safe, ce qui signifie qu’elle considère les NULLs comme des valeurs connues permettant de comparer l’égalité.

Voir aussi :

ARRAY_INTERSECTION

Syntaxe

ARRAYS_OVERLAP( <array1> , <array2> )
Copy

Notes sur l’utilisation

  • Lorsque vous comparez des objets, les objets doivent être identiques pour renvoyer TRUE. Pour plus de détails, voir Exemples (dans ce chapitre).

  • Si vous transmettez des ARRAYs structurés, le ARRAY du deuxième argument doit être comparable au ARRAY du premier argument.

Exemples

Voici quelques exemples :

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

L’exemple suivant montre que les valeurs NULL sont considérées comme égales aux autres valeurs NULL. Si chaque tableau contient une valeur NULL, les tableaux se chevauchent, même si aucune autre valeur (autre que NULL) ne se chevauche :

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