数据湖探索 DLI-条件表达式:CASE
时间:2025-04-11 10:23:34
CASE
标准的SQL CASE表达式有两种模式。
- “简单模式”从左向右查找表达式的每个value,直到找出相等的expression:
WHEN value THEN result
[ WHEN ... ]
[ ELSE result ]
END
返回匹配value的result。如果没有匹配到任何值,则返回ELSE子句的result;如果没有ELSE子句,则返回空。示例:select a, case a when 1 then 'one' when 2 then 'two' else 'many' end from (values (1),(2),(3),(4)) as t(a); a | _col1 ---|------- 1 | one 2 | two 3 | many 4 | many (4 rows)
- “查找模式”从左向右判断每个condition的布尔值,直到判断为真,返回匹配result:
WHEN condition THEN result
[ WHEN ... ]
[ ELSE result ] END
如果判断条件都不成立,则返回ELSE子句的result;如果没有ELSE子句,则返回空。示例:select a,b, case when a=1 then 'one' when b=2 then 'tow' else 'many' end from (values (1,2),(3,4),(1,3),(4,2)) as t(a,b); a | b | _col2 ---|---|------- 1 | 2 | one 3 | 4 | many 1 | 3 | one 4 | 2 | tow (4 rows)
support.huaweicloud.com/sqlref-hetuengine-dli/dli_16_0099.html