【发布时间】:2020-01-24 09:18:09
【问题描述】:
我有一个等式,可以将大量变量相乘,如果其中一个变量为 0,那么我不希望它包含在等式中,将其替换为不会影响结果的 1。
当每个变量验证它们是否大于 0 时,验证它们的语句有点笨拙。
是否有类似 IsNull 的函数,如果变量为 0 则返回替代值?
--edit @Backs 答案是正确的,但显然在取出 sql 2012 iif 之后,当我尝试编写语句时,'=' 符号处出现语法错误。 sql-2012之后有iif的替代品吗?
【问题讨论】:
-
有点笨拙:
ISNULL(NULLIF(x,0), 1),或IIF(x=0,1,x) -
您说使用 CASE 会“花费太长时间”,这是什么意思?您的意思是评估比较到 0 的性能会太慢吗?