为什么这会给我一个零除错误?我希望这返回带有声明参数的数据库中的记录计数。谢谢你的帮助。
SELECT COUNT(*)
FROM dbcrms.ccars.ci_submission_history
where crms_dt = '2016-12-31'
and totalliabilities <> null or totalliabilities <> 0
and mra_required = 'Yes'
and committedexposure / totalliabilities <= 1
我正在使用SQL Server 2014
答案 0 :(得分:6)
您无法保证评估子句的顺序,因此committedexposure / totalliabilities
之前可能会totalliabilities <> 0
评估0
使用null
将nullif()
设置为SELECT COUNT(*)
FROM dbcrms.ccars.ci_submission_history
where crms_dt = '2016-12-31'
and totalliabilities <> 0
and mra_required = 'Yes'
and committedexposure / nullif(totalliabilities,0) <= 1
的解决方法:
<> null
而is not null
可能应为totalliabilities <> 0
,如果or
则为真,所以这是多余的。
另外,请注意逻辑运算符的and
takes precedence over or
。最好将<p><div id ="something"></div></p>
的每一面都包裹起来,这样就可以清楚地知道你想要完成什么。