使用IIF将访问查询转换为SQL Server
我正在寻找一些帮助,将access查询转换为sql server 大部分我都很好,但我正在努力解决IIF部分使用IIF将访问查询转换为SQL Server,sql,sql-server,ms-access,Sql,Sql Server,Ms Access,我正在寻找一些帮助,将access查询转换为sql server 大部分我都很好,但我正在努力解决IIF部分 SELECT * FROM (([if_submission] LEFT JOIN [payrollruns] ON [if_submission].[periodnumber] = [payrollruns].[runid]) LEFT JOIN [if_rti_finalfps_q] ON [payroll
SELECT *
FROM (([if_submission]
LEFT JOIN [payrollruns]
ON [if_submission].[periodnumber] = [payrollruns].[runid])
LEFT JOIN [if_rti_finalfps_q]
ON [payrollruns].[runid] = [if_rti_finalfps_q].[runid])
LEFT JOIN [if_rti_eps]
ON [if_submission].[submissionid] = [if_rti_eps].[submissionid]
WHERE [if_submission].[taxyear] = 2016
AND ( **IIF([if_submission].[submissiontypeid] = 8,
[payrollruns].[payemonth] = 5,
[if_submission].[periodnumber] = 5)** )
AND ( [if_submission].[submissiontypeid] = 8
OR [if_submission].[submissiontypeid] = 10 )
AND [if_submission].[testinlive] = 0
ORDER BY submissiontypeid
这就是我需要帮助的地方
IIF([if_submission].[submissiontypeid] = 8,
[payrollruns].[payemonth] = 5,
[if_submission].[periodnumber] = 5)
有人有什么想法吗
谢谢你试试这个
AND 5 = CASE WHEN [if_submission].[submissiontypeid] = 8
THEN [payrollruns].[payemonth]
ELSE [if_submission].[periodnumber]
END
试试这个
AND 5 = CASE WHEN [if_submission].[submissiontypeid] = 8
THEN [payrollruns].[payemonth]
ELSE [if_submission].[periodnumber]
END
您可以使用:
简单的大小写表达式:
CASE input_expression
WHEN when_expression THEN result_expression [ ...n ]
[ ELSE else_result_expression ]
END
CASE
WHEN Boolean_expression THEN result_expression [ ...n ]
[ ELSE else_result_expression ]
END
搜索的大小写表达式:
CASE input_expression
WHEN when_expression THEN result_expression [ ...n ]
[ ELSE else_result_expression ]
END
CASE
WHEN Boolean_expression THEN result_expression [ ...n ]
[ ELSE else_result_expression ]
END
您可以使用:
简单的大小写表达式:
CASE input_expression
WHEN when_expression THEN result_expression [ ...n ]
[ ELSE else_result_expression ]
END
CASE
WHEN Boolean_expression THEN result_expression [ ...n ]
[ ELSE else_result_expression ]
END
搜索的大小写表达式:
CASE input_expression
WHEN when_expression THEN result_expression [ ...n ]
[ ELSE else_result_expression ]
END
CASE
WHEN Boolean_expression THEN result_expression [ ...n ]
[ ELSE else_result_expression ]
END
如果您使用的是
SQLServer2012+
,则支持IIF
,但语法需要稍有不同
IIF([if_submission].[submissiontypeid] = 8,[payrollruns].[payemonth],
[if_submission].[periodnumber] ) = 5
否则,我将使用和/或逻辑执行此操作
......
(
(
[if_submission].[submissiontypeid] = 8 and [payrollruns].[payemonth] = 5
)
or
(
[if_submission].[periodnumber] = 5 and [if_submission].[submissiontypeid] <> 8
)
)
.....
。。。。。。
(
(
[if_submission].[submissiontypeid]=8和[payrollruns].[payemonth]=5
)
或
(
[if_submission].[periodnumber]=5和[if_submission].[submissiontypeid]8
)
)
.....
如果您使用的是SQL SERVER 2012+
,则支持IIF
,但语法需要稍有不同
IIF([if_submission].[submissiontypeid] = 8,[payrollruns].[payemonth],
[if_submission].[periodnumber] ) = 5
否则,我将使用和/或逻辑执行此操作
......
(
(
[if_submission].[submissiontypeid] = 8 and [payrollruns].[payemonth] = 5
)
or
(
[if_submission].[periodnumber] = 5 and [if_submission].[submissiontypeid] <> 8
)
)
.....
。。。。。。
(
(
[if_submission].[submissiontypeid]=8和[payrollruns].[payemonth]=5
)
或
(
[if_submission].[periodnumber]=5和[if_submission].[submissiontypeid]8
)
)
.....
您确定在MS Access中工作吗?使用iif
这看起来真是一种奇怪的方式。是的,它确实适用于Access。你确定它适用于MS Access吗?使用iif
,这看起来真是一种奇怪的方式。是的,它确实适用于访问谢谢,这正是我所需要的。花了很长时间四处寻找,却找不到任何符合这个答案的东西,一定是找错了!!谢谢,这正是我需要的。花了很长时间四处寻找,却找不到任何符合这个答案的东西,一定是找错了!!