oracle case用法疑问
在查询的时候我用
select t.id,(case t.people_sum when null then 0 when 0 then 0 else nvl(t.execmoney,0)/t.people_sum end) as "人均金额" from myTable .
查出来后人均金额竟然还有为空的,这是为什么呢,正常的话应该没有为空才对吧,因为我已经用case把people_sum为空设成了0,又用nvl(t.execmoney,0)把execmoney也设成了0。可怎么还有空的呢,难道与case的执行顺序有关么?
因为t.people_sum有为0的情况,如果为0不能做除数,所以为空,你去掉t.people_sum,就知道了
上面说错了
因为t.people_sum有为null的情况,如果null做除数,所以为空,你去掉t.people_sum,就知道了
你可以在t.people_sum 在用一次case
分開寫,逐個測試吧!
when null then 0?
这样也行?
这句不起作用,用decode:
nvl(t.execmoney,0)/t.people_sum
你的除数为0啊,这个语句有问题吧,实在要这样就试试
下面这个
select t.id,
nvl(t.execmoney,0)/nvl(t.people_sum,0) as "人均金额"
from myTable .
SQL code:
SELECT T.ID ,
相关问答:
大家好,我现在把oracle服务器上面的原始文件,下载到本机了.我想在本机访问数据库怎么设置啊.是不是类似可以建立一个什么虚拟服务器来实现.请大家出出主意
引用
大家好,我现在把oracle服务器上面 ......
各位大哥,帮个忙。
下个Oracle for vista 版本的安装试试
10G和11G的
http://www.oracle.com/technology/software/products/database/index.html
------------------------------------------- ......
在系统运行的时候总是有一块磁盘始终闪红灯,进入系统后
#topas查看总是有一块磁盘%BUSY为90%以上,
数据库版本:oracle 9.2.0.7
数据文件挂载的节点:/oradata/pcs/ 逻辑卷号lv04
#lslv -l lv04
......
我是在toad中输入下段sql
declare
TYPE test_rec IS record(
code varchar(10),
name varchar(30)
);
v_book test_rec;
......
eclipse 3.3启动web工程,要连接oracle9i数据库报
严重: Cannot create PoolableConnectionFactory (Listener refused the connection with the following error:
ORA-12518, TNS:listener could not hand off cli ......