case when 的用法详解
CASE WHEN条件表达式函数类似JAVA中的IF ELSE语句。
格式
CASE WHEN condition THEN result
[WHEN...THEN...]
ELSE result
END
condition是一个返回布尔类型的表达式,如果表达式返回true,则整个函数返回相应result的值。
简单CASE WHEN函数
CASE SCORE WHEN \'A\' THEN \'优\' ELSE \'不及格\' END
CASE SCORE WHEN \'B\' THEN \'良\' ELSE \'不及格\' END
CASE SCORE WHEN \'C\' THEN \'中\' ELSE \'不及格\' END
等同于,使用CASE WHEN条件表达式函数实现
CASE WHEN SCORE = \'A\' THEN \'优\'
WHEN SCORE = \'B\' THEN \'良\'
WHEN SCORE = \'C\' THEN \'中\' ELSE \'不及格\' END
THEN 后边的值与 ELSE 后边的值类型应一致,否则会报错。如下
CASE SCORE WHEN \'A\' THEN \'优\' ELSE 0 END
\'优\'和0数据类型不一致则报错
[Err] ORA-00932 数据类型不一致 应为 CHAR, 但却获得 NUMBER