SQL实际问题——列的替换和汇率打折问题

在一个表或者不同的表中,A列的某些值,用其对应的B列中的值替代
举个栗子

product_idproduct_nameproduct_typesale_pricepurchase_priceregist_date
0001T恤衣服10005002009-09-20
0002打孔器办公用品5003202009-09-11
0003运动T恤衣服40002800(NULL)
0004菜刀厨房用具300028002009-09-20
0005高压锅厨房用具680050002009-01-15
0006叉子厨房用具500(NULL)2009-09-20
0007擦菜板厨房用具8807902008-04-28
0008圆珠笔办公用品100(NULL)2009-11-11

product_id列中的0002我想替换成sale_price列中所对应的500,别的不变
虽然并木有什么实际意义

SELECT CASE
	WHEN product_id IN (SELECT product_id FROM product WHERE product_id = '0002') 
	THEN sale_price
	WHEN  product_id  NOT IN (SELECT product_id FROM product WHERE product_id = '0002')
	THEN product_id
	END AS a
FROM product

结果如下
a
0001
500
0003
0004
0005
0006
0007
0008
再举个栗子
厨房用具打8折,其他的打五折

SELECT  product_id, product_name,product_type,
		CASE
		WHEN product_type='厨房用具'
		THEN sale_price*0.9
		WHEN product_type!='厨房用具'
		THEN sale_price *0.5
		END AS price
FROM product

结果如下

product_idproduct_nameproduct_typeprice
0001T恤衣服500.0
0002打孔器办公用品250.0
0003运动T恤衣服2000.0
0004菜刀厨房用具2700.0
0005高压锅厨房用具6120.0
0006叉子厨房用具450.0
0007擦菜板厨房用具792.0
0008圆珠笔办公用品50.0
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值