select (qty_1-qty_2)/qty_2 from t_224_stadata where aaa= '689109585'其中(qty_1-qty_2)/qty_2都是按照用户输入自动在程序中生成的,也就是说字段不一定是这几个,那怎么处理可能出现的 除数为零的情况呢,(现在向除数为0时整个表达式的结果显示为"--"或直接显示结果为0
解决方案 »
- 如何判断一个字段的值是否包含在某个字符串中??
- sql问题 麻烦大家看看 为什么取不到值呢?
- 求解
- 请教查询中去掉不一样的时间格式
- 存储过程批量处理数据的问题
- 我想实现这样一个存储过程,但是异常部分出错,大家帮忙看看是哪里的问题,应该怎么写?
- "插入的值对于列过大" 这是什么错误?
- 数据库初始化参数Init文件的配置是指哪个文件:init.ora 或 init(加上数据库名).ora
- 请问哪位知道PL/SQL中有没有判断数字正负的函数?
- oracle 的检索和查询效率的问题,急急急急急急急急!!!! 欢迎大家参与,回答就散分!!
- Oracle 异常,跪求解决方法
- 放100分帮我看看这个简单的oracle存储过程为什么报错?在线等,解决后10分钟左右马上结帐!!
select decode(qty_2,0,'除数为0',(qty_1-qty_2)/qty_2) from t_224_stadata where aaa= '689109585'
你运行一下,很简单的
比如select CUS_ID sum((qty_1-qty_2)/qty_2) from t_224_stadata where aaa= '689109585'该怎么处理呢,我改成select CUS_ID decode(sum(quy_2),0,'除数为0',sum((qty_1-qty_2)/qty_2) from t_224_stadata where aaa= '689109585' group by CUS_ID
提示错误 非单组分组函数
按照group by分组时,除了cus_id外,其他的字段都要加上聚集函数的
select (case when y=0 then '--' else to_char(x/y) end) as z from tab_name
比如select CUS_ID sum((qty_1-qty_2)/qty_2) from t_224_stadata where aaa= '689109585'该怎么处理呢,我改成select CUS_ID decode(sum(quy_2),0,'除数为0',sum((qty_1-qty_2)/qty_2) from t_224_stadata where aaa= '689109585' group by CUS_ID
提示错误 非单组分组函数
--------------------------------------------------------
楼主要更改一下思维方式,可以函数套函数的。你还少了一个逗号。
求SUM,应该把为0的去掉,(where quy_2!=0)更改:
select CUS_ID, sum(decode(quy_2,0,0,(qty_1-qty_2)/qty_2)) from t_224_stadata where aaa= '689109585'
group by CUS_ID
注意, 不能写成 除数为0 了。
或者:
select CUS_ID, sum((qty_1-qty_2)/qty_2) from t_224_stadata where aaa= '689109585'
and quy_2!=0
group by CUS_ID
具体还要看你的 qty_2 是否可以为 null,如果是,还需要麻烦点。