Oracle 数据库报错 除数为0

本文探讨了在Oracle数据库中遇到除数为0错误时,如何利用decode()函数进行处理。介绍了decode()函数的基本用法,包括判断字符串相等、比较大小和分段操作,提供了一个具体的实例来解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

除数为0 用到decode()函数

原因;

select (a/b*100)per from aa;  
// 当b为0时,提示除数为0,

解决:select decode(b,0,0,a/b*100) per from aa;
自己的实例:decode(VISIT_SUM,0,0,round(PAY_SUM / VISIT_SUM, 2))

decode()函数的几种用法

  1. 使用decode判断字符串是否一样
DECODE(value,if 条件1then1if 条件2then2...else 其他值)
  1. 使用decode判比较大小
Select decode(sign(var1-var2),1,var1,var2) from dual
// Sign()函数根据某个值是0、正数、负数,分别返回0、1、-1;
// Sql测试:
Select decode(sign(100-90),1,100,90) from dual
// 输出结果 :100
// 100-90=10>0则sign()返回1,decode()函数取值var1=100
Select decode(sign(100-90),-1,100,90) from dual
// 输出结果:90
// 100-90=10>0则sign()返回1,decode()函数取值var2=100
  1. 使用decode函数分段
//工资大于10000为高薪,工资介于5000到10000为中等,工资小于5000位低薪
//Sql测试:
SELECT ename,sal,DECODE(SIGN(sal-10000),1,’高薪’,0,’高薪’,1,DECODE(SIGN(sal-5000),1’中等’,0,’中等’,1,’低薪’))) from ac01
//输出结果:
//李明 12000 高薪
//张三 5000 中等
//王五 3000 低薪

〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰

更多博客内容请查看 ? 可可西里的博客

如果喜欢的话可以点个赞和关注嗷~ ????

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值