易截截图软件、单文件、免安装、纯绿色、仅160KB

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服务器上面的原始文件,下载到本机了.我想在本机访问数据库怎么设置啊.是不是类似可以建立一个什么虚拟服务器来实现.请大家出出主意
引用
    大家好,我现在把oracle服务器上面 ......

Windows 7 怎样安装Oracle - Oracle / 基础和管理

各位大哥,帮个忙。

下个Oracle for vista 版本的安装试试
10G和11G的 
http://www.oracle.com/technology/software/products/database/index.html 
------------------------------------------- ......

oracle与aix - Oracle / 高级技术

在系统运行的时候总是有一块磁盘始终闪红灯,进入系统后
#topas查看总是有一块磁盘%BUSY为90%以上,
数据库版本:oracle 9.2.0.7 
数据文件挂载的节点:/oradata/pcs/ 逻辑卷号lv04 
#lslv -l lv04 ......

一个pl/sql问题 - Oracle / 开发

我是在toad中输入下段sql
  declare
  TYPE test_rec IS record(
  code varchar(10),
  name varchar(30)
  );
  v_book test_rec;
    ......

eclipse中连接oracle的问题 - Oracle / 基础和管理

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 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号