L'expression Select est semblable à une expression If. Quelquefois, cependant, vous pourrez écrire des formules plus claires et moins répétitives à l'aide de l'expression Select. Par exemple, pour évaluer le champ {Clients.Fax} afin de déterminer si l'indicatif téléphonique correspond à l'Etat de Washington (206, 360, 509) ou de la Colombie-Britannique au Canada (604, 250) :
//Select example 1
Select {Customer.Fax}[1 To 3]
Case "604", "250" :
"BC"
Case "206", "509", "360" :
"WA"
Default :
"";
L'expression située à droite du mot clé Select est appelée condition Select. Dans l'exemple ci-dessus, il s'agit de {Clients.Fax}[1 To 3]. L'expression Select essaie de trouver le premier cas qui correspond à la condition Select, puis exécute l'expression qui suit le signe deux-points pour ce cas. Le cas par défaut est pris en compte si aucun des cas précédents ne correspond à la condition Select. Notez qu'il y a également un signe deux-points après la valeur par défaut.
//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
"";
Exemple
Cette formule regroupe le nombre de nominations aux Oscars reçues par un film dans l'une des catégories faible, moyen, élevé ou très élevé et montre dans le processus certaines des possibilités pour les listes d'expressions qui suivent les intitulés des cas :
//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"
La clause par défaut de l'expression Select est facultative. Si la clause par défaut est absente et qu'il n'y a aucune correspondance pour chacun des cas, l'expression Select renvoie la valeur par défaut pour son type d'expression. Par exemple, si dans l'exemple ci-dessus la clause par défaut avait été omise et {movie.NOM} = 11, la chaîne vide "" aurait été renvoyée. Select étant une expression, les commentaires figurant dans la section
Détails supplémentaires sur les expressions If (syntaxe Crystal) s'y appliquent également.