oracle除数为0时的解决方法(decode的使用)
来源:互联网 发布:网络监控摄像机维修 编辑:程序博客网 时间:2024/04/29 21:59
decode(除数,0,显示0%,不为零的正常表达式)代替原来那个有可能出0除报错的表达式
解决:select decode(b,0,0,a/b*100) per from aa;
(1)decode的含义
含义解释:
decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)
该函数的含义如下:
IF 条件=值1 THEN
RETURN(翻译值1)
ELSIF 条件=值2 THEN
RETURN(翻译值2)
......
ELSIF 条件=值n THEN
RETURN(翻译值n)
ELSE
RETURN(缺省值)
END IF
decode(字段或字段的运算,值1,值2,值3)
这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3
当然值1,值2,值3也可以是表达式,这个函数使得某些sql语句简单了许多
(2)decode的使用
1、比较大小
select decode(sign(变量1-变量2),-1,变量1,变量2) from dual; --取较小值
sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1
例如:
变量1=10,变量2=20
则sign(变量1-变量2)返回-1,decode解码结果为“变量1”,达到了取较小值的目的
2.
结合Lpad函数,如何使主键的值自动加1并在前面补0
select LPAD(decode(count(记录编号),0,1,max(to_number(记录编号)+1)),14,'0') 记录编号 from tetdmis
eg:
select decode(dir,1,0,1) from a1_interval
dir 的值是1变为0,是0则变为1
比如我要查询某班男生和女生的数量分别是多少?
通常我们这么写:
select count(*) from 表 where 性别 = 男;
select count(*) from 表 where 性别 = 女;
要想显示到一起还要union一下,太麻烦了
用decode呢,只需要一句话
select sum(decode(性别,男,1,0)),sum(decode(性别,女,1,0)) from 表
eg:
select sum(decode(siteno,'LT',1,0)),sum(decode(siteno,'SZ',1,0)) from facd605;
select sum(case siteno when 'LT' then 1 else 0 end),sum(case siteno when 'SZ' then 1 else 0 end) from facd605;
- oracle除数为0时的解决方法(decode的使用)
- Oracle 除数为0的处理(decode)
- oracle 除数为0,默认为0的自定义函数
- SQL 中除数为零的解决方法
- oracle 除数为 0
- oracle(除数不能为0)
- oracle 除数不能为0
- JAVA中除数为0的问题
- Oracle的DECODE()使用
- Oracle Decode()的使用
- oracle数据同比的时候除数为0该怎么处理
- ios 除数为0时
- oracle 之除数不为0
- 除数为0时被除数为不同数据类型的运行结果
- 在vc6.0中除数为零的验证
- Java中除数为0时计算报错的问题
- SSRS----添加计算字段,除数若为0的解决办法
- oracle decode函数的使用
- 第五章:排序检索数据
- 小程序 坑
- D3.js中Bullet Charts详解
- Mina学习笔记 Session
- 递归(求对象中无底洞值)
- oracle除数为0时的解决方法(decode的使用)
- .ReflectionException: There is no setter for property named XXX
- 简单日历Demo
- Android 反编译神器jadx的使用
- 接口
- NodeJS微信支付
- Dubbo架构设计详解
- linux_c语言实现父子进程共享内存
- 计算两个时间戳之间相差的时间