表中有两个字段A和B
需要在视图中显示A/B的值
但B可能为0,当B为0时,就不计算,直接显示为0该怎样做?
需要在视图中显示A/B的值
但B可能为0,当B为0时,就不计算,直接显示为0该怎样做?
解决方案 »
- 版主,各位高手,传递到 SUBSTRING 函数的长度参数无效,求解释啊???
- 在存储过程中有事务处理,如何判断是提交还是回滚呢?是不是判断@@error=0呢?
- 为什么我用VC一修改数据库的东西就崩溃呢
- 求解主键包含的字段列的排序属性是存在系统表的哪里
- 怎样才能把mysql卸载干净?
- 求教 关于sql脚本问题
- 有没有类似ISNULL(表达式,0)的函数可以将计算或者查询得到的负数动态的替换为0
- csdn的搜索是如何实现的
- 请问存储过程是否可以实现创建动态名称的表?
- 两张表结构完全相同表 如何条件查询-连接显示
- sql统计问题 出现了多条数据
- 通过备份文件把数据导入一个新的数据库,只有数据没有主外键等约束关系。(Sql Server 2005)
case when B=0 then 0
else 1.0*A/B
end
--设置会话选项
set ansi_warnings off
set arithabort off select isnull(5/0,0)0
insert tab
select 1,2 union
select 3,9 union
select 5,0
select id,id2,case id2 when 0 then 0 else cast(id as decimal)/id2 end
from tab
drop table tab
(3 行受影响)
id id2
----------- ----------- ---------------------------------------
1 2 0.50000000000
3 9 0.33333333333
5 0 0.00000000000(3 行受影响)
1、除数为零要过了掉,此时使用case判断;
2、如果除数被除数都是整数时,要注意首先转化为其他类型,否则结果就取整了;
3、是否需要考虑四舍五入也是要注意的。
case when B=0 then 0 else A/B end
set arithabort off
--设置这两项就可以了
from tab
drop table tab