美文网首页
处理除数为零的情况

处理除数为零的情况

作者: 42c64edf12e9 | 来源:发表于2019-08-12 15:17 被阅读0次

在sql server中做除法处理的时候,我们经常需要处理除数为零的情况,因为如果遇到这种情况的时候,sqlserver会抛出遇到以零作除数错误的异常,我们总不希望把这个异常显示给用户吧。

做个会报这个错误的示例,如以下sql代码:

declare @a int;
declare @b int;
set @a=10
set @b=0
select @a/@b

运行就会抛出遇到以零作除数错误的错误

本章主要讲解一下如何在sql server处理除数为零的两种方法:
一,利用case语句。
我们改写上面的sql,当@b=0的时候,我们就返回1.改写如下:

declare @a int;
declare @b int;
set @a=10
set @b=0
select case @b when 0 then 1 else @a/@b end

这样写当然是正确的,但显的麻烦,下面我们看一下第二处理方法。

二,利用nullif函数。
nullif函数有两个参数,定义如下:
NULLIF( expression , expression )
其作用就是:如果两个指定的表达式相等,就返回null值。
看一示例:
select nullif(0,0)

运行结果:null

我们知道,null与任何数进行任何运算,其结果都等于null,利用这点,我们可以将上面的sql改写为:

declare @a int;
declare @b int;
set @a=10
set @b=0
select @a/nullif(@b,0)

其运行结果自然为null了。

再利用isnull函数,我们就可以实现当@b=0的时候,结果返回1的需求了。最终的sql改写如下:

declare @a int;
declare @b int;
set @a=10
set @b=0
select isnull(@a/nullif(@b,0),1)

OK,两种方法介绍完毕,相对于方法一,我更推荐大家使用方法二,因为方法二的代码更简省。

(如果有朋友对isnull函数不了解的话,这里可以解释一下。
isnull的定义如下:
isnull(参数1,参数2)
其作用就是,当参数1等于null时,就返回参数2的值

相关文章

  • 处理除数为零的情况

    在sql server中做除法处理的时候,我们经常需要处理除数为零的情况,因为如果遇到这种情况的时候,sqlser...

  • Ruby语法(异常处理)

    异常处理结构 下面一个简单的示例,演示了捕获除数为零时发生的错误 抛出异常 raise: 简单抛出一个未处理的异常...

  • 数据分析师 - Week12

    SAS技术 选择连续的多个column 判断除数是否为零

  • Java--异常的概念

      异常指程序运行过程中出现的非正常现象,例如用户输入错误、除数为零、需要处理的文件不存在、数组下标越界等。  在...

  • python异常

    python中的异常 NameError:变量未声明 ZeroDivisionError: 除数为零 Syntax...

  • 伤心的零

    被除数和除数末尾有零的计算 “0”肯定会很伤心 除数和被除数末尾有两个零 不专心听的小鬼却划去他们末尾的一个零 让...

  • 爬虫Day18-mongodb数据特征的提取

    摘要 去除数据为空或-、/情况 获得累计数 清洗时间格式不一样的数据 得到时间序列 1.导入模板 2. 去除数据为...

  • 《除数是整数的小数除法》教学反思

    小数除法可以根据小数点处理的方法不同,分成两种情况:一种是除数是整数的小数除法,另一种是除数是小数的小数除...

  • PostgreSQL除数为0解决方案

    1.问题背景 数学上除法除数为0是不允许的,所以在数据库设计时,有的数据库会对这种除数为0做特殊的处理,MySQL...

  • 因数倍数(一)

    知识点总结 1、意义 整除时,被除数是除数的倍数,除数是被除数的因数。 注意: ①研究范围:一般指非零自然数 ②二...

网友评论

      本文标题:处理除数为零的情况

      本文链接:https://www.haomeiwen.com/subject/dusujctx.html