Conditional Expressions
You use conditional expressions to create expressions that convert values.
The conditional expressions described in this section are building blocks for creating expressions that convert a value from one form to another.
Follow these rules:
- In
CASE
statements,AND
has precedence overOR
. - Strings must be in single quotes.
Expression | Example | Description | Syntax |
---|---|---|---|
CASE (If) |
|
Evaluates each If none of the Note: See Best Practices for using CASE statements in Analyses and Visualizations. |
|
CASE (Switch) |
|
Also referred to as
If none of
the If the first expression matches an expression in multiple
|
|
IfCase > ELSE |
- |
- |
|
IfCase > IFNULL |
- |
- |
|
IfCase > NULLIF |
- |
- |
|
IfCase > WHEN |
- |
- |
|
IfCase > CASE |
- |
- |
|
SwitchCase > ELSE |
- |
- |
|
SwitchCase >IFNULL |
- |
- |
|
SwitchCase > NULLIF |
- |
- |
|
SwitchCase > WHEN |
- |
- |
|
Best Practices For Using CASE statements in Analyses and Visualizations
When using CASE statements in reports and workbooks, consider the report columns and the order of aggregation because these affect how expressions and sub-totals are calculated.
-
In general, when using CASE expressions, make sure that any columns used in the expression are included in the report.
- If the order of aggregation is important, then change the report aggregation rule from Default to Sum.
-
If a condition has to be evaluated before the aggregation is computed (for example, if the column filtered isn't displayed in the report), then use the FILTER function.
Example
This example use data for Brand, Product Type, and Revenue.
Description of the illustration case-best-practice-data.png
To apply a condition to set Camera revenue to 0, create the following
conditional expression: CASE WHEN Product_Type = ‘Camera’ THEN 0 ELSE Revenue
END
.
When Product_Type is excluded from the report, data isn't available to
evaluate the expression because it contains Product_Type, and the results are:
Description of the illustration case-best-practice-results-1.png
By adding PRODUCT_TYPE to the report and setting report aggregation to SUM, the result
aggregates after the base level values are calculated:
Description of the illustration case-best-practice-results-2.png
An alternative to using CASE is to use a filter expression: FILTER(Revenue using
Product_Type != ‘Camera’). The expression is calculated independently of report columns,
and aggregations are applied after calculation:
Description of the illustration case-best-practice-results-3.png