SYNOPSIS<SWITCH switchExpression>
<CASE value1[ /]>
... statements if switchExpression = value1 ...
[</CASE>]
<CASE op value2[ /]>
... statements if switchExpression op value2 is true ...
[</CASE>]
...
<DEFAULT[ /]>
... statements if no <CASE> matches ...
[</DEFAULT>]
</SWITCH>
DESCRIPTION
The SWITCH
statement provides a multi-option branch based on a
given switchExpression, which is a SQL SELECT
clause expression.
The value of switchExpression is compared against each
CASE
value, in the order they appear in the script, until one
matches. The statements that follow the matching CASE
are
executed, up to the closing </CASE>
, or next <CASE>
,
<DEFAULT>
, or closing </SWITCH>
tag. Only the first
matching CASE
(if any) is executed. If none of the
CASE
s match, then the statements after the <DEFAULT>
tag, if present, are executed.
An optional operator can be given in a CASE
to use in
comparing its value to the SWITCH
value, instead of the default
eq
. This can be useful in checking a range of values; note
the order of CASE
statements here:
EXAMPLE<SWITCH $temp>
<CASE lte 32> Ice
<CASE lt 60> Cold water
<CASE lt 100> Warm water
<CASE lt 212> Hot water
<DEFAULT> Steam
</SWITCH>
The same operators that are translated in <IF>
(here) are supported in <CASE>
.
CAVEATS
Similar to IF
, including arrayconvert
/SQL
in version 8 and later.
Note that </CASE>
is not needed; execution doesn't fall through
to the next CASE
as in C
. The DEFAULT
clause,
if present, must be last, since CASE
s are checked in order of
appearance.
SEE ALSOIF ELSE ELSEIF