SQLSERVER中nullif函数的用法



项目中SQL计算值的时候碰到不能除以0的报错,想到用nullif函数

语法NULLIF ( expression1 , expression2 )

如果expression1和expression2的值相等则返回第一个表达式的值,不相等返回Null。

例如:nullif(2,0),返回null


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
引用[1]:在SQL Server,处理除数为零的情况有两种方法。第一种方法是使用CASE语句,当除数为零时返回一个特定的值,例如1。这可以通过将除数与0进行比较,并在相等时返回1来实现。第二种方法是使用NULLIF函数,该函数接受两个参数,如果这两个参数相等,则返回NULL。通过将除数作为第一个参数传递给NULLIF函数,并将0作为第二个参数传递,可以实现当除数为零时返回NULL的效果。然后,可以使用ISNULL函数将NULL值转换为特定的值,例如1。综上所述,可以使用这两种方法来处理SQL Server的除数为零的情况。[1] 引用[2]:在SQL Server,除法函数可以使用多种方式实现。以下是一些示例: 1. 使用Convert函数将除法结果转换为指定的小数位数,并乘以100以得到百分比。例如,可以使用以下代码计算百分比:Convert(decimal(18,2), 分子) / Convert(decimal(18,2), 分母) * 100。 2. 使用除法运算符和乘法运算符计算百分比。例如,可以使用以下代码计算百分比:分子 / (分母 * 1.0) * 100。 3. 使用Round函数将除法结果四舍五入到指定的小数位数,并使用Cast函数将结果转换为字符串,并添加百分号。例如,可以使用以下代码计算百分比:Cast(Round(分子 / (分母 * 1.0) * 100, 2) as varchar) + '%'。 4. 使用Convert函数将除法结果转换为指定的小数位数,并使用Cast函数将结果转换为字符串,并添加百分号。例如,可以使用以下代码计算百分比:Cast(Convert(decimal(18,2), 分子 * 1.0 / (分母 * 1.0) * 100) as varchar) + '%'。 综上所述,SQL Server可以使用不同的方法来实现除法函数,具体取决于需要的结果格式和精度。[2]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值