工单
描述
CASE
是一个行函数,根据一个或多个输入条件对数据集中的每一行进行求值,并在满足输入条件时输出指定的结果。语法
CASE
WHEN
input_condition
[AND
|OR
input_condition
]THEN
output_expression
[...] [ELSE
other_output_expression
] END
返回值
每行返回一个与输出表达式类型相同的值。所有输出表达式必须返回相同的字段类型。
如果有多个返回不同字段类型的输出表达式,则需要将整个字段类型括起来。
CASE
在其中一个字段类型转换函数中表达式,例如 TO_INT
,将所有输出值显式转换为特定字段类型。输入参数
- WHENinput_condition
- 必修内容。该WHEN关键字用于指定一个或多个布尔表达式(请参见支持的条件运算符)。如果输入值满足条件,则会应用输出表达式。输入条件的表达式中可以包含其他行函数,但不能包含汇总函数或度量表达式。您可以使用AND或OR关键字来组合多个输入条件。
- THENoutput_expression
- 必修内容。该THEN关键字 用于指定在满足指定条件时输出的表达式。输出表达式可以包含其他行函数,但不能包含汇总函数或度量表达式。
- ELSEother_output_expression
- (可选)该ELSE当指定的条件不成立时,关键字关键字可指定要使用的备用输出表达式。如果ELSE未提供表达式,ELSE NULL是默认选项。
- 结束
- 必修内容。表示以下时段结束CASE函数处理。
示例
将
年龄
列中的值转换为基于范围的分组(分级显示):CASE WHEN [age] <= 25 THEN "0-25" WHEN [age] <= 50 THEN "26-50" ELSE "over 50"
END
将
性别
列中的值从一个字符串转换为另一个字符串:CASE WHEN [gender] = "M" THEN "Male" WHEN [gender] = "F" THEN
"Female" ELSE "Unknown" END
车辆
列包含以下值:卡车、公共汽车、小汽车、小型摩托、马车、自行式三轮车和机车。以下示例将 车辆
列中的多个值转换为单个值:CASE WHEN [vehicle] in ("bike","scooter","motorcycle") THEN "two-wheelers" ELSE
"other" END