11.1 什么是条件逻辑
程序在执行过程中,从多路径选择其一的能力
11.2 使用case表达式
11.2.1 查找型case表达式
- 例子
- 语句从上向下执行,当满足一个when即返回,忽略其他语句
- 还可在返回语句(then)中使用子查询
- case表达式(when) :可使用,范围语句,等式条件,不等条件,and / or / not 预算符, 灵活度较高
11.2.2 简单case表达式
- 自己构建等式条件,不需要读者自己指定条件,但是灵活度不够
11.3 case表达式范例
11.3.1 结果集变换
- 希望每个值产生一个单列行,即,一个用户的所有信息在一行中显示
- extract(),返回该列需要的年份
11.3.2 选择性聚合
用 sum()聚合:
两个或多个case表达式处理过的数据
11.3.3 存在性检查
只关心是否存在某种关系,并不关心到底有多少
- 使用简单case表达式,计算账户数目
11.3.4 除零错误
做除法运算时,分母不能为0;否则会返回null值
所以,应将分母包含在条件逻辑中
11.3.5 有条件更新
11.3.6 null 值处理
当值为null是,使用case表达式将其替换