易截截图软件、单文件、免安装、纯绿色、仅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服务器上面 ......

Oracle 数据导出问题 - Oracle / 高级技术

exp user/password@dbname file=c:\table.dmp tables=jbitaku,jbitakum grants=y
然後按回車鍵 說明:  user/password@dbname  分別表示用戶名,密碼和服務名 f ......

oracle数据库 缓冲池 - Oracle / 基础和管理

请问这个缓冲池是怎么回事啊?可以连接缓冲池利用其中的数据吧?怎么用?
这个是oracle自动做的,一般应用程序是操作不了的。

不能直接连接吗?

引用
不能直接连接吗?
不能

那缓冲池里的数据也不能查询 ......

oracle 执行顺序 - Oracle / 基础和管理

SQL code:

declare
v_deptno number(2);
v_dname varchar2(14);
begin
dbms_output.put_line('请输入部门号和部门名:');
v_deptno:=&deptno;
v_dname:='&dname';
insert into dept01(deptno,dnam ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号