- Catégories :
Fonctions de données semi-structurées et structurées (tableau/objet)
ARRAY_INTERSECTION¶
Renvoie un tableau contenant les éléments correspondants dans les deux tableaux en entrée.
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 :
Syntaxe¶
Arguments¶
array1Tableau qui contient des éléments à comparer.
array2Tableau qui contient des éléments à comparer.
Renvoie¶
Cette fonction renvoie un tableau (ARRAY) contenant les éléments des tableaux d’entrée correspondants.
Si aucun élément ne se chevauche, la fonction renvoie un tableau vide.
Si l’un des arguments ou les deux sont NULL, la fonction renvoie NULL.
L’ordre des valeurs dans le tableau renvoyé n’est pas spécifié.
Notes sur l’utilisation¶
Lors de la comparaison de données de type
OBJECT, les objets doivent être identiques pour être considérés comme correspondants. Pour plus de détails, voir Exemples (dans ce chapitre).La différence entre la fonction
ARRAY_INTERSECTIONet la fonctionARRAYS_OVERLAPassociée est que la fonctionARRAYS_OVERLAPrenvoie simplementTRUEouFALSE, tandis queARRAY_INTERSECTIONrenvoie les valeurs qui se chevauchent.Dans Snowflake, les tableaux sont des ensembles multiples et non des ensembles simples. En d’autres termes, les tableaux peuvent contenir plusieurs copies de la même valeur.
ARRAY_INTERSECTIONcompare les tableaux à l’aide d’une sémantique à plusieurs ensembles (parfois appelée « sémantique de sac »), ce qui signifie que la fonction peut renvoyer plusieurs copies de la même valeur. Si un tableau a N copies d’une valeur et l’autre tableau M copies de la même valeur, le nombre de copies dans le tableau renvoyé est le plus petit de N ou M. Par exemple, si N est 4 et M est 2, alors la valeur renvoyée contient 2 copies.
Les deux arguments doivent être soit des ARRAYs structurés, soit des ARRAYs semi-structurés.
Si vous transmettez des ARRAYs structurés :
La fonction renvoie un ARRAY d’un type qui peut prendre en charge les deux types d’entrée.
Le ARRAY du deuxième argument doit être comparable au ARRAY du premier argument.
Exemples¶
Cet exemple montre une utilisation simple de la fonction :
Les ensembles peuvent avoir plus d’une valeur correspondante :
Il pourrait y avoir plusieurs instances de la même valeur correspondante. Par exemple, dans la requête ci-dessous, un tableau a trois copies de la lettre « B » et l’autre tableau a deux copies de la lettre « B ». Le résultat contient deux correspondances :
Cet exemple utilise une plus grande quantité de données :
Ceci montre l’utilisation avec les valeurs NULL :
Cet exemple montre une utilisation avec le type de données OBJECT :
Bien que des valeurs NULL dans un tableau soient traitées comme des valeurs comparables, si vous passez NULL au lieu d’un tableau, le résultat est NULL :