Catégories :

Fonctions de données semi-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é.

Syntaxe

ARRAYS_OVERLAP( <array1> , <array2> )

Notes sur l’utilisation

  • Lors de la comparaison d’objets, les objets doivent être identiques pour renvoyer TRUE. Pour plus de détails, voir Exemples (dans ce chapitre).

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    |
+---------+

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    |
+---------+