{"title":"ODPS SQL 语句中的 CASE WHEN 用法 - 条件判断和分支选择","description":"本文介绍了在 ODPS SQL 语句中,CASE 和 WHEN 关键字用于条件判断和分支选择,以及其语法和使用示例。包括简单的条件判断、嵌套使用、比较运算符和逻辑运算符等。","keywords":"ODPS, SQL, CASE, WHEN, 条件判断, 分支选择, 语法, 示例, 嵌套, 比较运算符, 逻辑运算符","content":"在 ODPS 的 SQL 语句中,CASE 和 WHEN 是用于条件判断和分支选择的关键字。\n\nCASE 语句是一种通用的条件判断语句,可以根据条件的不同选择不同的结果。其语法如下:\n\nCASE\n WHEN condition1 THEN result1\n WHEN condition2 THEN result2\n ...\n ELSE result\nEND\n\n其中,condition1、condition2 等是条件表达式,result1、result2 等是满足对应条件时的结果。ELSE 子句是可选的,用于指定当没有任何条件满足时的默认结果。\n\n例如,下面的示例中,根据 score 的不同范围返回不同的等级:\n\nSELECT name, score,\n CASE\n WHEN score >= 90 THEN 'A'\n WHEN score >= 80 THEN 'B'\n WHEN score >= 70 THEN 'C'\n ELSE 'D'\n END AS grade\nFROM table_name;\n\n这里,当 score 大于等于 90 时,返回 A;当 score 大于等于 80 时,返回 B;当 score 大于等于 70 时,返回 C;否则返回 D。\n\nWHEN 子句是 CASE 语句的分支条件,可以有多个。在 ODPS 的 SQL 中,WHEN 子句的条件表达式可以是任意有效的 SQL 表达式,可以使用比较运算符、逻辑运算符等。\n\n另外,CASE 语句还支持嵌套使用,即在 WHEN 子句中使用 CASE 语句。这样可以实现更复杂的条件判断和分支选择。例如:\n\nSELECT name, score,\n CASE\n WHEN score >= 90 THEN 'A'\n WHEN score >= 80 THEN 'B'\n WHEN score >= 70 THEN 'C'\n ELSE\n CASE\n WHEN score >= 60 THEN 'D'\n ELSE 'E'\n END\n END AS grade\nFROM table_name;\n\n这里,当 score 大于等于 90 时,返回 A;当 score 大于等于 80 时,返回 B;当 score 大于等于 70 时,返回 C;当 score 大于等于 60 时,返回 D;否则返回 E。"}


原文地址: https://www.cveoy.top/t/topic/p8Vo 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录