sql:case表达式

case表达式是在区分情况时使用的,这种情况的区分在编程中通常称为条件分支。

case表达式的语法分为简单case表达式和搜索case表达式两种。

case表达式会从对最初的when语句进行求值开始。所谓求值就是要调查该表达式的真值是什么。如果结果为真,就返回then语句中的表达式,case表达式的执行到此为止。如果不为真,就跳转到下一条when子句的求值之中,如果直到最后when子句为止返回结果都不为真,那么就会返回else中表达式,执行终止。

select product_name,
	   case when product_type = '衣服'
		    then 'A: ' + product_type
			when product_type = '办公用品'
		    then 'B: ' + product_type
			when product_type = '厨房用具'
		    then 'C: ' + product_type
			else null
	   end as abc_product_type
from Product;

case表达式可以写在语句的任意位置。

行列转换:

select sum(case when product_type = '衣服'
				then sale_price else 0 end) as sum_price_clothes,
	   sum(case when product_type = '厨房用具'
				then sale_price else 0 end) as sum_price_kitchen,
	   sum(case when product_type = '办公用品'
				then sale_price else 0 end) as sum_price_office
from Product;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值