首页 > 解决方案 > 除以我的查询中遇到的零错误

问题描述

每当我运行此查询时:

 SELECT
     Call_DT, 
     CAST(Talk_Sec_Count + Alloc_Sec_Count AS DECIMAL(16, 4)) AS Talk,
     CAST(CT_Count * 1.0 - NP_Count  / CT_Count * 1.0 AS DECIMAL(16, 4)) AS Quality,
     Pymt_Rtn_Rt AS Utilization,
     Agent_UID
 FROM 
     [TableName] 
 WHERE
     [Call_Date]  <= 13 

我收到此错误:

消息 8134,级别 16,状态 1,第 31 行
遇到除以零错误。

问题:我需要做什么才能在表中插入“零”以避免此错误?

标签: sqlsql-server

解决方案


使用NULLIF()

 CAST(CT_Count * 1.0 - NP_Count  / NULLIF(CT_Count * 1.0, 0) AS DECIMAL(16, 4)) AS Quality,

NULL如果分母是0-- 防止错误,则返回。


推荐阅读