我为SQL Server 2012编写了这个SQL代码并在那里正常工作:
select
d.sp_id,
sum(iif(d.Published is null, 0, 1)) as Published,
sum(iif(d.Cancelled is null, 0, 1)) as Cancelled,
sum(iif(d.Revenue is null, 0, d.Revenue)) as Revenue
from
[MyTable] d
group by
d.sp_id
此处Published
和Cancelled
的值为datetime
。
Revenue
是decimal(18,8)
值。
我需要将其迁移到SQL Server 2008 R2(其中IIF
不可用)。
这样做的最佳方式是什么? (同时保持其逻辑为100%)。
我可以考虑使用CASE
,但这对我来说听起来过于冗长。
非常感谢提前
答案 0 :(得分:1)
IIF
函数只是语法糖,它转换为CASE语句
在2012年之前的SQL Server版本中,请使用CASE
而不是IIF
。
另见: