将Access IIF转换为SQL Server案例

时间:2016-12-28 02:23:14

标签: sql-server tsql sql-server-2008-r2

我正在尝试将访问2013 IIF()语句转换为SQL Server 2008 case语句,但我收到错误

  

Msg 102,Level 15,State 1,Line 5
  ')附近的语法不正确'。

我确信这源于我的错误转换,但我必须做些什么才能正确转换此语法?

使用

((val1*mk)+val1)+IIf(ffsaa="0",0,6) AS CC

SQL尝试

((val1*mk)+val1)+case when ffsaa=0 then 0 else 6 end) AS CC

2 个答案:

答案 0 :(得分:2)

您在case开头时缺少一个左括号。使用:

((val1*mk)+val1)+(case when ffsaa=0 then 0 else 6 end) AS CC

答案 1 :(得分:0)

您根本不需要Case声明。您正尝试值(ffsaa)添加到另一个计算值。除非您的值不是0

,否则0除此之外没有任何区别
Select ((val1*mk)+val1) + ffsaa