Available
DSQL, PSQL
The CASE
construct returns a single value from a number of possible ones. Two syntactic variants are supported:
Simple
Syntax
When this variant is used, test-expr is compared expr 1, expr 2 etc., until a match is found and the corresponding result is returned. If no match is found, defaultresult from the optional ELSE
clause is returned. If there are no matches and no ELSE
clause, NULL
is returned.
The matching works identically to the “=
” operator. That is, if test-expr is NULL
, it does not match any expr, not even an expression that resolves to NULL
.
The returned result does not have to be a literal value: it might be a field or variable name, compound expression or NULL
literal.
A short form of the simple CASE
construct is the DECODE
function.
Searched
Syntax
The bool_expr expression is one that gives a ternary logical result: TRUE
, FALSE
or NULL
. The first expression to return TRUE
determines the result. If no expressions return TRUE
, defaultresult from the optional ELSE
clause is returned as the result. If no expressions return TRUE
and there is no ELSE
clause, the result will be NULL
.
As with the simple construct, the result need not be a literal value: it might be a field or variable name, a compound expression, or be NULL
.