Select 運算式和 If 運算式類似,但是,有時候,您可以使用 Select 運算式撰寫出更簡潔、更少重複的公式,以下範例驗算 {Customer.Fax} 欄位,決定其區碼是否屬於華盛頓州 (206、360、509) 或加拿大的英屬哥倫比亞 (604、250):
//Select example 1
Select {Customer.Fax}[1 To 3]
Case "604", "250" :
"BC"
Case "206", "509", "360" :
"WA"
Default :
"";
緊接在 Select 關鍵字之後的運算式稱為 Select 條件。在上面這個範例中,是 {Customer.Fax}[1 To 3]。Select 運算式嘗試尋找第一個符合 Select 條件的 Case,然後執行位於該 Case 後面冒號後的運算式。假如前面都不符合 Select 條件,就符合Default 條件。請注意,在Default 之後也有一個冒號。
//Same effect as Select example 1
Local StringVar areaCode := {Customer.Fax}[1 To 3];
If areaCode In ["604", "250"] Then
"BC"
Else If areaCode In ["206", "509", "360"] Then
"WA"
Else
"";
範例
以下的公式將某電影所獲得的奧斯卡提名數分成低、中、高或極高等類別,並顯示在 Case 標記後可以放入的運算式清單。
//Select example 2
Select {movie.NOM}
Case 1,2,3, Is < 1 :
(
//Can have expression lists by using
//parentheses
10 + 20;
"low"
)
Case 4 To 6, 7, 8, 9 :
"medium"
Case 10 :
"high"
Default :
"extreme"
Select 運算式中的 Default 子句是選擇性的,如果沒有 Default 子句,而且沒有任何一個條件符合,Select 運算式就會傳回該運算式型別的預設值。例如,假如以上範例中沒有 Default 子句,而且 {movie.NOM} = 11,便會傳回空白字串。Select 運算式也是一個運算式,因此也適用「其他有關 If 運算式的詳細資料」一節中的類似註解。