Renvoie les éléments présents dans le tableau a mais absents du tableau b, sous la forme d'un nouveau tableau sans doublons.
Syntaxe
array<T> array_except(array<T> <a>, array<T> <b>)
Paramètres
a et b : obligatoires. Ces paramètres désignent des tableaux. Le type T dans array<T> indique le type de données des éléments contenus dans les tableaux. Les éléments peuvent être de n'importe quel type. Les éléments des tableaux a et b doivent impérativement être du même type.
Valeur renvoyée
La fonction renvoie une valeur de type ARRAY. Le résultat varie selon les règles suivantes :
Le tableau renvoyé ne contient aucun doublon et ses éléments conservent l'ordre du tableau a.
Si un élément d'un tableau est null, cette valeur null est prise en compte dans l'opération.
Si l'un des tableaux d'entrée est vide, la fonction renvoie le tableau non vide après suppression des doublons.
Si les deux tableaux d'entrée sont vides, la fonction renvoie un tableau vide.
Exemples
-
Exemple 1 : renvoyez les éléments présents dans
array(1, 1, 3, 3, 5, 5)mais absents dearray(1, 1, 2, 2, 3, 3), sous la forme d'un nouveau tableau sans doublons. Requête d'exemple :-- The return value is [5]. select array_except(array(1, 1, 3, 3, 5, 5), array(1, 1, 2, 2, 3, 3)); -
Exemple 2 : renvoyez les éléments présents dans
array(1, 1, 3, 3, 5, 5, null, null)mais absents dearray(1, 1, 2, 2, 3, 3), sous la forme d'un nouveau tableau sans doublons. Requête d'exemple :-- The return value is [5,null]. select array_except(array(1, 1, 3, 3, 5, 5, null, null), array(1, 1, 2, 2, 3, 3)); -
Exemple 3 : renvoyez les éléments présents dans un tableau mais absents d'un autre, sous la forme d'un nouveau tableau sans doublons. L'un des tableaux d'entrée est vide. Requête d'exemple :
-- The return value is [2,1]. select array_except(array(2, 1, 1, 2), cast(array() as array<int>)); -
Exemple 4 : renvoyez les éléments présents dans un tableau mais absents d'un autre, sous la forme d'un nouveau tableau sans doublons. Les deux tableaux d'entrée sont vides. Requête d'exemple :
-- The return value is []. select array_except(cast(array() as array<int>), cast(array() as array<int>));
Fonctions associées
ARRAY_EXCEPT est une fonction de type complexe. Pour plus d'informations sur les fonctions de traitement des types complexes (ARRAY, MAP, STRUCT et JSON), consultez la rubrique Fonctions de type complexe.