Select 式の機能は If 式と似ています。しかし、Select 式を使用すると、より明確で繰り返しの少ない式を作成できる場合があります。たとえば、{Customer.Fax 番号}フィールドを評価して、地域コードがワシントン州(206、360、509)のものか、それともカナダのブリティッシュ コロンビア州(604、250)のものかを判定するとします。
//Select の例 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 に対応するコロンまで実行します。前にある Case のどれも Select 条件に一致しない場合は、Default が適用されます。Default の後にもコロンがあることに注意してください。
//Select の例 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 の例 2 Select {movie.NOM} Case 1,2,3, Is < 1 : ( //かっこを使用すると複数の //式を並べることができます 10 + 20; "低い" ) Case 4 To 6, 7, 8, 9 : "中間" Case 10 : "高い" Default : "最高"
この Select 式の Default 句は省略できます。Default 句を指定せず、さらにどの Case も一致しなかった場合、Select 式は、その式の型のデフォルト値を返します。たとえば、上の例で Default 句を指定せず、さらに {movie.NOM} = 11 の場合、空の文字列“ ”が返されます。Select 式も 1 つの式なので、「If 式の考察」と同じ注意が Select 式にも当てはまります。