odps的sql语句case和when用法
在ODPS的SQL语句中,CASE和WHEN是用于条件判断和分支选择的关键字。
CASE语句是一种通用的条件判断语句,可以根据条件的不同选择不同的结果。其语法如下:
CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE result END
其中,condition1、condition2等是条件表达式,result1、result2等是满足对应条件时的结果。ELSE子句是可选的,用于指定当没有任何条件满足时的默认结果。
例如,下面的示例中,根据score的不同范围返回不同的等级:
SELECT name, score, CASE WHEN score >= 90 THEN 'A' WHEN score >= 80 THEN 'B' WHEN score >= 70 THEN 'C' ELSE 'D' END AS grade FROM table_name;
这里,当score大于等于90时,返回A;当score大于等于80时,返回B;当score大于等于70时,返回C;否则返回D。
WHEN子句是CASE语句的分支条件,可以有多个。在ODPS的SQL中,WHEN子句的条件表达式可以是任意有效的SQL表达式,可以使用比较运算符、逻辑运算符等。
另外,CASE语句还支持嵌套使用,即在WHEN子句中使用CASE语句。这样可以实现更复杂的条件判断和分支选择。例如:
SELECT name, score, CASE WHEN score >= 90 THEN 'A' WHEN score >= 80 THEN 'B' WHEN score >= 70 THEN 'C' ELSE CASE WHEN score >= 60 THEN 'D' ELSE 'E' END END AS grade FROM table_name;
这里,当score大于等于90时,返回A;当score大于等于80时,返回B;当score大于等于70时,返回C;当score大于等于60时,返回D;否则返回E
原文地址: http://www.cveoy.top/t/topic/iriC 著作权归作者所有。请勿转载和采集!