第一章 神奇的SQL之CASE
CASE 表达式
概述
利用CASE 表达式来进行分支判断,有两种CASE表达式:简单表达式(simple case expresssion )和搜索表达式(searched case expression)。
简单表达式 vs 搜索表达式
1 | -- 简单CASE 表达式 |
使用CASE 的注意点:
1.统一各分支返回的数据类型,CASE 各个分支的返回值的类型是需要一直的
2.不要忘了写END,很有可能出现问题
3.养成写ELSE 的习惯
使用CHECK约束
1 | CONSTRAINT check_salary CHECK |
在UPDATE语句中进行条件分支
1 |
|
表之间的数据匹配
和DECODE 函数相比,CASE表达式中一大优势是能够判断表达式,可以在CASE 中使用谓词组合。
1 |
|
CASE 也可以使用聚合函数
1 |
|
本节要点:
在 GROUP BY 子句里使用 CASE 表达式,可以灵活地选择作为聚 合的单位的编号或等级。这一点在进行非定制化统计时能发挥巨 大的威力。
在聚合函数中使用 CASE 表达式,可以轻松地将行结构的数据转 换成列结构的数据。
相反,聚合函数也可以嵌套进 CASE 表达式里使用。
相比依赖于具体数据库的函数,CASE 表达式有更强大的表达能 力和更好的可移植性。
正因为 CASE 表达式是一种表达式而不是语句,才有了这诸多优 点
练习题: