我正在使用Microsoft SQL Server 2012并继续遇到错误
遇到零错误。
如下所示。如果两个日期相同,我想添加一个空值。
SELECT
sf.TotalPrice / DATEDIFF(day, sf.StartDate,sf.EndDate) as DailyAllocatedRevenue,
sf.TotalPrice
FROM
sftable
答案 0 :(得分:2)
在Sql-Server中使用NullIf
函数
如果差异返回0,它将返回null
请参阅此link将帮助您
SELECT
sf.TotalPrice / NULLIF(DATEDIFF(day, sf.StartDate,sf.EndDate),0) as DailyAllocatedRevenue
,sf.TotalPrice
FROM sftable
答案 1 :(得分:2)
您可以将DATEDIFF
包裹在NULLIF
:
SELECT
sf.TotalPrice / NULLIF(DATEDIFF(day, sf.StartDate,sf.EndDate),0) as DailyAllocatedRevenue
,sf.TotalPrice
FROM sftable
如果任何输入为NULL
,或者结果为0
,则它将变为NULL
,并通过该部门传播。
答案 2 :(得分:1)
尝试并使用
case
when sd.startdate <> sd.EndDate then sf.TotalPrice / DATEDIFF(day, sf.StartDate, sf.EndDate) as DailyAllocatedRevenue
else sf.TotalPrice
end
答案 3 :(得分:0)
IIF(DATEDIFF(day, sf.StartDate,sf.EndDate)=0,NULL, sf.TotalPrice
/Convert(Decimal(18,4),DATEDIFF(day, sf.StartDate,sf.EndDate)))
应该做的伎俩