永发信息网

oracle select t.* , (t.a-t.b)/t.b from( select a,b,c,d from table_test ) t

答案:4  悬赏:0  手机版
解决时间 2021-03-07 00:07
  • 提问者网友:原来太熟悉了会陌生
  • 2021-03-06 18:59
(t.a-t.b)/t.b 这个表达式是动态的. 怎么判断被除数是不是0. 如果是0就把整个表达式为0
不用decode函数
最佳答案
  • 五星知识达人网友:拜訪者
  • 2021-03-06 19:05
select t.* , (t.a-t.b)/t.b from( select a,b,c,d from table_test ) t
where t.b <> 0
union all
select t.* ,0 from( select a,b,c,d from table_test ) t
where t.b = 0

哈哈
全部回答
  • 1楼网友:老鼠爱大米
  • 2021-03-06 20:42
SELECt CASE WHEN (t.b != 0) THEN (SELECT (t.a - t.b) / t.b FROM (SELECt product_id a, brand_id b, sub_brand_id c, product_cata d FROM pm_product) s WHERe s.a = t.a) END CASE FROM (SELECt product_id a, brand_id b, sub_brand_id c, product_cata d FROM pm_product) t 通过case when 就能解决你的问题,如果满意请加分,谢谢!
  • 2楼网友:有你哪都是故乡
  • 2021-03-06 20:21
你好! select t.* , case t.b WHEN 0 THEN 0 ELSE (t.a-t.b)/t.b END from (select a,b,c,d from table_test ) t 即可 如有疑问,请追问。
  • 3楼网友:蕴藏春秋
  • 2021-03-06 19:53
select a,b,c,d ,case when b=0 then 0 else (t.a-t.b)/t.b end case from table_test
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯