VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1472|回复: 13

如何屏蔽遇到被零除错误!

[复制链接]

1

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-1-19 00:00:01 | 显示全部楼层 |阅读模式
如何屏蔽遇到被零除错误!
由于在程序是应用到动态sql求表达式的值(如exec sp_executesql @sql,N'@va numeric(18,6) output',@va output),
而表达式中有除法运算,可能有被零除的情形,程序会退出,如何此屏蔽错误?
将0写入结果继续运行?
回复

使用道具 举报

0

主题

114

帖子

69.00

积分

新手上路

Rank: 1

积分
69.00
发表于 2020-1-25 15:18:02 | 显示全部楼层
在之前判断case when 字段=0 then 0 else...
回复

使用道具 举报

0

主题

211

帖子

108.00

积分

新手上路

Rank: 1

积分
108.00
发表于 2020-1-25 15:36:01 | 显示全部楼层
好像不行
回复

使用道具 举报

0

主题

114

帖子

69.00

积分

新手上路

Rank: 1

积分
69.00
发表于 2020-1-25 17:54:01 | 显示全部楼层
那分成2次查呢先where <>0
再union all 一次呵呵.
回复

使用道具 举报

0

主题

20

帖子

19.00

积分

新手上路

Rank: 1

积分
19.00
发表于 2020-1-25 18:18:02 | 显示全部楼层
加个case when ... else ... end判断
回复

使用道具 举报

0

主题

49

帖子

35.00

积分

新手上路

Rank: 1

积分
35.00
发表于 2020-1-26 06:18:01 | 显示全部楼层
支持楼上的!
回复

使用道具 举报

0

主题

93

帖子

46.00

积分

新手上路

Rank: 1

积分
46.00
发表于 2020-1-26 06:36:02 | 显示全部楼层
是被除数为0
在被除数定义一下(case when 值=0 then 1 else 值 end)
回复

使用道具 举报

0

主题

14

帖子

13.00

积分

新手上路

Rank: 1

积分
13.00
发表于 2020-1-26 12:09:02 | 显示全部楼层
在查询的最前面,加上
set ansy_warnings off
这样被0除时不会中断查询报错,而是为被0除的字段返回null
回复

使用道具 举报

0

主题

14

帖子

13.00

积分

新手上路

Rank: 1

积分
13.00
发表于 2020-1-26 12:27:01 | 显示全部楼层
sorry,是
SET ansi_warnings OFF
回复

使用道具 举报

0

主题

6

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-1-26 18:18:02 | 显示全部楼层
在除法运算的地方加上判断:case when 除数>0 then 被除数/除数 else 0 end
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表