使用条件表达式可以创建转换值的表达式。
此部分中介绍的条件表达式是用于创建将值从一种形式转换成另一种形式的表达式的构建块。
遵循以下规则:
CASE
语句中,AND
的优先级高于 OR
。表达式 | 示例 | 说明 | 语法 |
---|---|---|---|
CASE (If) |
|
计算各个 如果不满足任何一个 注:请参见“在分析和可视化中使用 CASE 语句的最佳实践”。 |
|
CASE (Switch) |
|
也称为 如果与任何一个 如果第一个表达式与多个 |
|
IfCase > ELSE |
- |
- |
|
IfCase > IFNULL |
- |
- |
|
IfCase > NULLIF |
- |
- |
|
IfCase > WHEN |
- |
- |
|
IfCase > CASE |
- |
- |
|
SwitchCase > ELSE |
- |
- |
|
SwitchCase >IFNULL |
- |
- |
|
SwitchCase > NULLIF |
- |
- |
|
SwitchCase > WHEN |
- |
- |
|
在报表和工作簿中使用 CASE 语句时,应考虑报表列和聚合顺序,因为这些会影响表达式和小计的计算方式。
通常,在使用 CASE 表达式时,应确保表达式中使用的任何列都包含在报表中。
如果必须先评估某个条件,然后再计算聚合(例如,如果筛选的列未显示在报表中),则使用 FILTER 函数。
示例
此示例使用 "Brand"、"Product_Type" 和 "Revenue" 的数据。
.png 的说明
为了应用条件以将 Camera 收入设置为 0,创建以下条件表达式:CASE WHEN Product_Type = ‘Camera’ THEN 0 ELSE Revenue END
。
从报表中排除了 Product_Type 时,没有数据可用于对表达式求值,因为它包含 Product_Type,结果如下:
.png 的说明
通过将 PRODUCT_TYPE 添加到报表并将报表聚合设置为 SUM,在计算基本级别值后聚合结果:
.png 的说明
替代使用 CASE 的方式是使用筛选器表达式:FILTER(Revenue using Product_Type != ‘Camera’)。表达式独立于报表列进行计算,并且在计算后应用聚合:
.png 的说明