Sql server 在SQL Server 2008 R2中从IIF迁移到CASE语句
我有一个要求,我们必须从MS Access迁移到SQL Server 我们有一个where条款,如:Sql server 在SQL Server 2008 R2中从IIF迁移到CASE语句,sql-server,ms-access,Sql Server,Ms Access,我有一个要求,我们必须从MS Access迁移到SQL Server 我们有一个where条款,如: WHERE (((IIf([ATTD_Region_CD]='ALL',True,IIf([ATTD_Region_CD]='NI' And [Region_CD]<>'002' And [Region_CD]<>'007',True,IIf([ATTD_Region_CD]= [Region_CD],True,False))))<>False) 结
WHERE (((IIf([ATTD_Region_CD]='ALL',True,IIf([ATTD_Region_CD]='NI' And
[Region_CD]<>'002' And [Region_CD]<>'007',True,IIf([ATTD_Region_CD]=
[Region_CD],True,False))))<>False)
结束
)
终止
(错误)
我已将@Out
声明为位
现在执行查询后,我得到一个错误:
“=”附近的语法不正确
我必须检查CASE
语句的结果是否正确
请任何人在这方面帮助我
提前感谢似乎不需要
案例
表达式-仅需逻辑:
WHERE [ATTD_Region_CD]='ALL' OR
([ATTD_Region_CD]='NI' And [Region_CD] not in ('002','007')) OR
([ATTD_Region_CD]=[Region_CD])
顺便说一句,虽然您没有使用特定版本,但SQL Server 2012-Forwards中提供了do note供您参考。对我有用。
WHERE [ATTD_Region_CD]='ALL' OR
([ATTD_Region_CD]='NI' And [Region_CD] not in ('002','007')) OR
([ATTD_Region_CD]=[Region_CD])