您的位置:澳门新葡8455最新网站 > 数据库管理 > 澳门新葡萄京娱乐场除零操作,sqlserver防止sql脚

澳门新葡萄京娱乐场除零操作,sqlserver防止sql脚

发布时间:2019-11-04 10:57编辑:数据库管理浏览(186)

    摘自:

    利用nullif函数

    摘要:
    下文介绍sql server中,sql脚本制止现身除零不当的点子共享

    nullif函数有多个参数,定义如下:


    NULLIF( expression , expression )

    在各类业务系统开垦中,平日会遭受除零的不当,下文分享了二种管理办法:
    方法1: case when end 

    其作用正是:若是八个钦定的表达式相等,就回到null值。

    declare @a int ---分子
    declare @b int ---分母
    select  case  when @b=0 then NULL else @a/@b end  as [a除以b]
    

    看后生可畏演示:


    select nullif(0,0)

    方法2:nullif
    nullif(表达式A,表达式B)
    —-若是表明式A不等于表明式B,则赶回表明式A
    —-反之再次来到NULL 

    运维结果:null

     

    大家明白,null与此外数实行此外运算,其结果都等于null,利用那一点,咱们得以将上边的sql改写为:

    declare @a int ---分子
    declare @b int ---分母
    select @a/nullif(@b,0) as [a除以b]
    

    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的值。)

    本文由澳门新葡8455最新网站发布于数据库管理,转载请注明出处:澳门新葡萄京娱乐场除零操作,sqlserver防止sql脚

    关键词:

上一篇:避免死锁,事务管理

下一篇:没有了