本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
notIn
notIn
會評估表達式是否存在於某個常值清單中。如果清單不包含相應表達式,則 notIn
傳回 true,否則傳回 false。notIn
對於字串類型輸入區分大小寫。
notIn
接受兩種常值清單,一種是手動輸入清單,另一種是多值參數。
語法
使用手動輸入的清單:
notIn(
expression
,[literal-1, ...]
)
使用多值參數:
notIn(
expression
, $multivalue_parameter
)
引數
- 運算式
-
要與常值清單中的元素進行比較的表達式。它可以是欄位名稱 (如
address
)、常值 (如 "Unknown
")、單值參數或對另一個純量函數的呼叫 (前提是該函數不是彙總函數或表計算)。 - literal list
-
(必要) 這可以是手動輸入的清單或多值參數。此引數最多接受 5,000 個元素。但是,在直接查詢第三方資料來源 (例如 Oracle 或 Teradata) 時,限制可能會更小。
-
手動輸入清單:包含要與表達式進行比較的一個或多個常值的清單。此清單應括在方括號內。所有要比較的常值必須具有與表達式相同的資料類型。
-
多值參數:作為常值清單傳入的預定義多值參數。此多值參數必須具有與表達式相同的資料類型。
-
傳回類型
布林值:TRUE/FALSE
手動輸入清單的範例
以下範例針對某個字串清單中的值評估 origin_state_name
欄位。比較字串類型輸入時,notIn
僅支援區分大小寫的比較。
notIn(origin_state_name,["Georgia", "Ohio", "Texas"])
以下是指定欄位的值。
"Washington" "ohio" "Texas"
對於這些欄位值,會傳回以下值。
true true false
第三個傳回值為 false,因為只有 "Texas" 是排除的值之一。
以下範例針對某個字串清單中的值評估 fl_date
欄位。為了與類型相符,使用 toString
將日期類型轉換為字串類型。
notIn(toString(fl_date),["2015-05-14","2015-05-15","2015-05-16"])

表達式引數中支援文字和NULL值,以便與清單中的文字進行比較。下列兩個範例都會產生新的FALSE值欄。
notIn("Washington",["Washington","Ohio"])
notIn(NULL,[NULL,"Ohio"])
多值參數的範例
假設某個作者建立了一個多值參數,其中包含所有州名稱的清單。然後該作者新增了一個控制項,以允許讀者從清單中選取值。
接著,有讀者從參數的下拉式清單控制項中選取三個值 "Georgia"、"Ohio" 和 "Texas"。在這種情況下,以下表達式等效於第一個範例,其中三個州名稱作為常值清單傳遞以與 original_state_name
欄位進行比較。
notIn (
origin_state_name
, ${stateName MultivalueParameter}
)
ifelse
的範例
notIn
可以作為布林值以巢狀結構置於其他函數中。一個例子是,作者可以使用 notIn
和 ifelse
評估清單中的任何表達式,並傳回他們想要的值。以下範例評估航班的 dest_state_name
是否位於特定美國州清單中,並根據比較返回不同的州類別。
ifelse(notIn(dest_state_name,
["Washington", "Oregon","California"]
), "notWestCoastUSState
", "WestCoastUSState
")
