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 運算式的詳細資料」一節中的類似註解。