从永远到永远-ORACLE种CASE WHEN的使用

需求:使NVL(sum(pe.PLAN_MONTH_AMOUNT), 0)、NVL(sum(pe.PERSONAL_RECEIVE),0)必须是0.
pe.PLAN_YEAR的值是null。


select    mu.MARKET_GROUP_ID, mu.USER_ID,mu.USER_NAME,mu.USER_NICK_NAME,nvl(pe.PERSONAL_TOTAL,0) PERSONAL_TOTAL,case when  NVL(sum(pe.PLAN_MONTH_AMOUNT), 0)!=0 then 0 else 0 end  TOTAL, case when NVL(sum(pe.PERSONAL_RECEIVE),0)!=0 then 0 else 0 end  PERSONAL_RECEIVE, case when pe.PLAN_YEAR is not null then 0 else null end PLAN_YEAR
							from HZ_SALES_PLAN_PERSONAL pe
							right join
							HZ_SALES_MARKET_USER mu on pe.USER_ID=mu.USER_ID
							where mu.MARKET_GROUP_ID='3f6925f0-fae4-407a-b7b5-870cb0079988' --补充团队计划id
							group by mu.MARKET_GROUP_ID, mu.USER_ID,mu.user_name,mu.USER_NICK_NAME,pe.PERSONAL_TOTAL,pe.PLAN_YEAR

1)CASE WHEN 连起来写case when pe.PLAN_YEAR is not null(相当于if条件判断,意为 当 pe.PLAN_YEAR字段的值不是null时)
2) THEN后边跟WHEN中条件下赋的值。then 0( pe.PLAN_YEAR字段的值不是null时,给这个字段赋值为0)
3)中间可以跟多个WHEN,类似1)的条件。
4)ELSE与THEN类似:else null(意为:否则就是null)。其实如果用不到,都可以不写。
5)END:固定写法,结束CASE WHEN用法。
6)别名放在END后边。
7)函数照常写.

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值