目录
一、简单CASE WHEN函数:
CASE SCORE WHEN 'A' THEN '优' ELSE '不及格' END
# 使用 IF 函数进行替换
IF(SCORE = 'A', '优', '不及格')
THEN后边的值与ELSE后边的值类型应一致,否则会报错。
如下:
CASE SCORE WHEN ‘A’ THEN ‘优’ ELSE 0 END’优’和0数据类型不一致则报错:
[Err] ORA-00932: 数据类型不一致: 应为 CHAR, 但却获得 NUMBER
简单CASE WHEN函数只能应对一些简单的业务场景,而CASE WHEN条件表达式的写法则更加灵活。
二、CASE WHEN条件表达式函数
类似JAVA中的IF ELSE语句。
格式:
CASE WHEN condition THEN result
[WHEN...THEN...]
ELSE result
END
SQL语言演示:
CASE
WHEN SCORE = 'A' THEN '优'
WHEN SCORE = 'B' THEN '良'
WHEN SCORE = 'C' THEN '中'
ELSE '不及格' END
# 等同于
CASE score
WHEN 'A' THEN '优'
WHEN 'B' THEN '良'
WHEN 'C' THEN '中'
ELSE '不及格' END
condition是一个返回布尔类型的表达式,
如果表达式返回true,则整个函数返回相应result的值,
如果表达式皆为false,则返回ElSE后result的值,如果省略了ELSE子句,则返回NULL。
三、常用场景
前言
students表的DD