业务测试遇到的oracle sql_控制商品数不被扣成负数 、图片地址拼装

兑换商品控制day_current_num不被扣成负数

兑换商品的时候,SQl写的很漂亮,可以实现“控制day_current_num不被扣成负数 

SQL里面有个逻辑,判断:day_limit=0就是不限量,day_current_num=0(保持和dai_limit字段一致),只扣减current_num当前剩余量

UPDATE T_EXCHANGE_GOODS

   SET operate_date    = sysdate,

       current_num     = current_num - 1,---用户兑换商品的数量

       day_current_num = (case sign(day_limit) when 0 then 0 else day_current_num - 1 end)

 WHERE id = 11--商品ID

 

--我的兑换列表接口控制返回兑换品的图片地址,用了nvl2函数

select *
   from (select row_limit.*, rownum rownum_
           from (SELECT to_char(a.create_date, 'YYYY-MM-DD HH24:MI') create_date,
                      a.goods_name,
                       a.equal_mcoin,
                      a.equal_score,
                      b.link_url,
                      a.prop_code,
                      a.id as award_id,
                    nvl2(b.img_url, 'http://211.139.191.111:12630/rs/ppp2/' || b.img_url, b.img_url) as logo_url
                   FROM T_MCOIN_EXCHANGE a, t_exchange_goods b
                  where a.award_type_id = b.id
                    and a.mobile = '10000000756'
                    and a.partition_id = '56'
                  ORDER BY a.id DESC) row_limit
          where rownum <= 13)
  where rownum_ > 0

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值