> 教育经验 > case when 的用法详解

case when 的用法详解

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