sql case 的用法

sql case when then else end 用法
    demo1:
    CREATE TABLE `table1` (
    `id`  int(11) NOT NULL ,
    `product`  varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
    `price`  decimal(10,2) NULL DEFAULT NULL ,
    PRIMARY KEY (`id`)
    );
    
    insert into table1 values(1,'香蕉',20.5),(2,'西瓜',15),(3,'杨梅',30),(4,'水果刀',8.5),(5,'铅笔',2),(6,'笔记本',3);
    
    现在有需求,查询文具、水果、日用品的销售价格情况。
        其中香蕉、西瓜、杨梅 是水果
        水果刀为日用品
        铅笔、笔记本是文具
    
    这中情况就可以使用case 将上面信息分组并求其中各类商品的总价值
    
    select 
        case t1.product when '香蕉' then '水果' when '西瓜' then '水果' when '杨梅' then '水果' when '水果刀' then '日用品' when '铅笔' then '文具' when '笔记本' then '文具' else '其他' end as '种类',
        sum(t1.price) as '价格' 
    from table1 t1 
        group by case t1.product when '香蕉' then '水果' when '西瓜' then '水果' when '杨梅' then '水果' when '水果刀' then '日用品' when '铅笔' then '文具' when '笔记本' then '文具' else '其他' end;

case 是一个条件控制语句,但是缺陷是,如果使用了case器sql中要查询的值的范围只在case指定的范围内!

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值