数据仓库之Case表达式

重点学习

! 利用 CASE表达式返回可选的值
! 在CASE表达式中使用特定的变量
! NULLIF的使用方法
! COALESCE (接合)

CASE 表达式

CASE表达式被用来根据搜索的条件返回可选的值。CASE表达式有两种格式:


! Valued (基于值)
! Searched (基于搜索)

基于值(Valued)的CASE语句

CASE语句允许对返回的数据记录进行条件处理。基于值的CASE表达式的基本格式为:
CASE value-expr WHEN expr1 THEN result1
WHEN expr2 THEN result2
:
ELSE resultn END

它的特点是:
! 对处理的每一条数据记录都将返回一个单独的结果
! 每一行的值决定于每一个WHEN子句
! 对于某行的处理首先找到第一个匹配的值并返回结果,如果没有匹配的值,则返回ELSE子句后面的值。

基于搜索(Searched)的CASE语句

在基于搜索的CASE语句中,没有必要指定一个表达式来进行计算,将计算的值作为匹配的基础。取而代之的是,可以指定多个、任意的搜索条件,对每一个搜
索条件返回相应的值。对于不匹配的条件处理,可以明确地指定一个ELSE子句,或利用缺省的ELSE NULL子句。

基于搜索的CASE语句格式为:
CASE WHEN condition1 THEN value-expr1
WHEN condition2 THEN value-expr2

ELSE value-expr END

NULLIF表达式

NULLIF实际上用来作为CASE语句在某种情况下的缩写,其格式为:NULLIF ( <expression1> , <expression2> )

规则:

! 如果表达式1等于表达式2,则返回NULL
! 如果表达式1不等于表达式2,则返回表达式1的值。

NULLIF等价于:
CASE
WHEN <expression1> = <expression2> THEN NULL
ELSE <expression1>
END

COALESCE(接合)表达式

COALESCE实际上也是CASE语句在某种特殊情况下的宿写。COALESCE将返
回第一个非NULL表达式的值。其格式为:
COALESCE ( <expression1> , <expression2> [, <expressionX> ] )
 
等价于:
CASE
WHEN <expression1> IS NOT NULL THEN <expression1>
WHEN <expression2> IS NOT NULL THEN <expression2 >
...
WHEN <expressionX> IS NOT NULL THEN <expressionX>
ELSE NULL
END


 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值