CASE WHEN
Description
CASE WHEN
evaluates a list of conditions and returns result expressions based on these conditions.
A CASE WHEN
statement consists of one or more conditions with associated result expressions.
Syntax
CASE WHEN condition THEN result_expression [ WHEN condition THEN result_expression ]* [ ELSE result_expression ] END
The result expression of the first condition that evaluates to true is returned. If no condition holds, the expression in the ELSE
part is returned. If no ELSE
is specified, and none of the conditions hold, NULL is returned.
All result expressions must be of the same type except for integers and floats which can be mixed. The result type of the CASE WHEN statement is equal to the type of the result expressions and float if integers and floats are mixed in the result expression.
NULL handling
If a condition evaluates to NULL, it is treated as if it was false.
Examples
[1] CASE WHEN with one condition: | ||||||||||||||
| ||||||||||||||
|
[2] CASE WHEN with one condition, without ELSE: | ||||||||||||||
| ||||||||||||||
|
[3] Use CASE WHEN to replace NULL values with 0. This can also be done with the COALESCE operator. | ||||||||||||||
| ||||||||||||||
|
[4] Return 'even' if the input value is even, and 'odd' otherwise. NULL input values result in NULL output values: | ||||||||||||||||||
| ||||||||||||||||||
|
[5] CASE WHEN with two conditions: | ||||||||||||||
| ||||||||||||||
|
[6] CASE WHEN with an integer THEN statement and a float ELSE statement. The result is a float column. | ||||||||||||||
| ||||||||||||||
|