Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
notIn
notIn
évalue si une expression existe dans une liste littérale. Si la liste ne contient pas l'expression, notIn
renvoie vrai, sinon il renvoie faux. notIn
est sensible à la casse pour les entrées de type chaîne de caractères.
notIn
accepte deux types de listes littérales : une liste saisie manuellement et un paramètre multivaleur.
Syntaxe
Utilisation d'une liste saisie manuellement :
notIn(
expression
,[literal-1, ...]
)
Utilisation d'un paramètre multivaleur :
notIn(
expression
, $multivalue_parameter
)
Arguments
- expression
-
L'expression à comparer aux éléments de la liste littérale. Il peut s'agir d'un nom de champ comme
address
, d'une valeur littérale comme «Unknown
», d'un paramètre à valeur unique ou d'un appel à une autre fonction scalaire, à condition que cette fonction ne soit pas une fonction d'agrégation ou un calcul de table. - liste littérale
-
(obligatoire) Il peut s'agir d'une liste saisie manuellement ou d'un paramètre multivaleur. Cet argument accepte jusqu'à 5 000 éléments. Toutefois, dans le cas d'une interrogation directe d'une source de données tierce, par exemple Oracle ou Teradata, la restriction peut être inférieure.
-
liste saisie manuellement – Une ou plusieurs valeurs littérales dans une liste à comparer à l'expression. La liste doit être placée entre crochets. Toutes les valeurs littérales à comparer doivent avoir le même type de données que l'expression.
-
paramètre multivaleur – Un paramètre multivaleur prédéfini transmis sous la forme d'une liste littérale. Le paramètre multivaleur doit avoir le même type de données que l'expression.
-
Type de retour
Booléen :/TRUEFALSE
Exemple avec une liste saisie manuellement
L'exemple suivant évalue le champ origin_state_name
pour les valeurs d'une liste de chaînes de caractères. Lors de la comparaison des entrées de type chaîne de caractères, notIn
ne prend en charge que la comparaison sensible à la casse.
notIn(origin_state_name,["Georgia", "Ohio", "Texas"])
Les valeurs suivantes sont celles du champ donné.
"Washington" "ohio" "Texas"
Pour ces valeurs, les valeurs suivantes sont renvoyées.
true true false
La troisième valeur de retour est fausse car seul « Texas » fait partie des valeurs exclues.
L'exemple suivant évalue le champ fl_date
pour les valeurs d'une liste de chaînes de caractères. Afin de faire correspondre le type, toString
est utilisé pour convertir le type de date en type de chaîne.
notIn(toString(fl_date),["2015-05-14","2015-05-15","2015-05-16"])
![Une image des résultats de l'exemple de fonction, présentés sous forme de tableau.](images/notin-function-example-manual-list.png)
Les littéraux et NULL les valeurs sont pris en charge dans l'argument d'expression à comparer aux littéraux de la liste. Les deux exemples suivants généreront une nouvelle colonne de FALSE valeurs.
notIn("Washington",["Washington","Ohio"])
notIn(NULL,[NULL,"Ohio"])
Exemple avec un paramètre mutivaleur
Supposons qu'un auteur crée un paramètre multivaleur contenant une liste de tous les noms d'état. Il ajoute ensuite un contrôle permettant au lecteur de sélectionner des valeurs dans la liste.
Ensuite, le lecteur sélectionne trois valeurs (« Georgia », « Ohio » et « Texas ») dans le contrôle de liste déroulante du paramètre. Dans ce cas, l'expression suivante est équivalente au premier exemple, où ces trois noms d'état sont transmis en tant que liste littérale à comparer avec le champ original_state_name
.
notIn (
origin_state_name
, ${stateName MultivalueParameter}
)
Exemple avec ifelse
Le champ notIn
peut être imbriqué dans d'autres fonctions en tant que valeur booléenne. Par exemple, les auteurs peuvent évaluer n'importe quelle expression dans une liste et renvoyer la valeur qu'ils veulent en utilisant notIn
et ifelse
. L'exemple suivant évalue si le dest_state_name
d'un vol se trouve dans une liste particulière d'états américains et renvoie différentes catégories d'états sur la base de la comparaison.
ifelse(notIn(dest_state_name,
["Washington", "Oregon","California"]
), "notWestCoastUSState
", "WestCoastUSState
")
![Une image des résultats de l'exemple de fonction, présentés sous forme de tableau.](images/notin-function-with-ifelse.png)