Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
notIn
notIn
valuta se un'espressione esiste all'interno di un elenco di letterali. Se l'elenco non contiene l'espressione, notIn
restituisce true, altrimenti restituisce false. notIn
fa distinzione tra maiuscole e minuscole per gli input di tipo stringa.
notIn
accetta due tipi di elenco di letterali, uno è un elenco inserito manualmente e l'altro è un parametro multi-valore.
Sintassi
Utilizzando un elenco inserito manualmente:
notIn(
expression
,[literal-1, ...]
)
Utilizzando un parametro multi-valore:
notIn(
expression
, $multivalue_parameter
)
Argomenti
- espressione
-
L'espressione da confrontare con gli elementi dell'elenco di letterali. Può essere un nome di campo come
address
, un valore letterale come 'Unknown
', un parametro a valore singolo o una chiamata a un'altra funzione scalare, purché questa funzione non sia una funzione aggregata o un calcolo di tabella. - elenco di letterali
-
(obbligatorio) Può trattarsi di un elenco inserito manualmente o di un parametro multi-valore. Questo argomento accetta fino a 5.000 elementi. Tuttavia, in una query diretta a un'origine dati di terze parti, ad esempio Oracle o Teradata, la restrizione può essere minore.
-
elenco inserito manualmente: uno o più valori letterali in un elenco da confrontare con l'espressione. L'elenco deve essere racchiuso tra parentesi quadrate. Tutti i valori letterali da confrontare devono avere lo stesso tipo di dati dell'espressione.
-
parametro multi-valore: un parametro multivalore predefinito passato come elenco di letterali. Il parametro multi-valore deve avere lo stesso tipo di dati dell'espressione.
-
Tipo restituito
Booleano:/TRUEFALSE
Esempio con un elenco inserito manualmente
L'esempio seguente valuta il campo origin_state_name
per i valori in un elenco di stringhe. Quando si confrontano input di tipo di stringa, notIn
supporta solo il confronto con distinzione tra maiuscole e minuscole
notIn(origin_state_name,["Georgia", "Ohio", "Texas"])
I seguenti sono i valori di campo forniti.
"Washington" "ohio" "Texas"
Per questi valori di campo vengono restituiti i seguenti valori.
true true false
Il terzo valore restituito è false in quanto solo "Texas" è uno dei valori esclusi.
L'esempio seguente valuta il campo fl_date
per i valori in un elenco di stringhe. Per far corrispondere il tipo, toString
viene utilizzato per convertire il tipo di data in un tipo di stringa.
notIn(toString(fl_date),["2015-05-14","2015-05-15","2015-05-16"])
I letterali e NULL i valori sono supportati nell'argomento delle espressioni da confrontare con i letterali nell'elenco. Entrambi i due esempi seguenti genereranno una nuova colonna di FALSE valori.
notIn("Washington",["Washington","Ohio"])
notIn(NULL,[NULL,"Ohio"])
Esempio con parametro multi-valore
Supponiamo che un autore crei un parametro multi-valore che contiene un elenco di tutti i nomi degli stati. Quindi l'autore aggiunge un controllo per consentire al lettore di selezionare i valori dall'elenco.
Successivamente, il lettore seleziona tre valori, "Georgia", "Ohio" e "Texas", dal controllo dell'elenco a discesa del parametro. In questo caso, l'espressione seguente è equivalente al primo esempio, in cui questi tre nomi di stati vengono passati come elenco letterale da confrontare con il campo original_state_name
.
notIn (
origin_state_name
, ${stateName MultivalueParameter}
)
Esempio con ifelse
notIn
può essere nidificato in altre funzioni come valore booleano. Un esempio è che gli autori possono valutare qualsiasi espressione in un elenco e restituire il valore desiderato utilizzando notIn
e ifelse
. L'esempio seguente valuta se l'oggetto dest_state_name
di un volo si trova in un particolare elenco di stati degli Stati Uniti e restituisce diverse categorie di stati in base al confronto.
ifelse(notIn(dest_state_name,
["Washington", "Oregon","California"]
), "notWestCoastUSState
", "WestCoastUSState
")