Sql server SQL SERVER中带有IN子句的CASE语句
如何在WHERE条件和in子句中使用CASE语句?我正在尝试以下查询及其给定语法错误Sql server SQL SERVER中带有IN子句的CASE语句,sql-server,case,Sql Server,Case,如何在WHERE条件和in子句中使用CASE语句?我正在尝试以下查询及其给定语法错误 SELECT * FROM tblCustomers WHERE custCode = 'CST1' AND CASE @accountType WHEN 'Doemstic' THEN city IN ('hokkaido','tokyo') ELSE city IN ('mumbai') END 此语句在“IN”附近出现语法错误 我正在使用SQL Server 20
SELECT * FROM tblCustomers
WHERE custCode = 'CST1'
AND CASE @accountType WHEN 'Doemstic'
THEN city IN ('hokkaido','tokyo')
ELSE city IN ('mumbai')
END
此语句在“IN”附近出现语法错误
我正在使用SQL Server 2012当我不得不做类似的事情时,我尝试用另一种方式编写它:
SELECT * FROM tblCustomers
WHERE
custCode = 'CST1'
AND
(
(
@accountType = 'Doemstic'
AND
city IN ('hokkaido','tokyo')
)
OR
(
@accountType <> 'Doemstic'
AND
city IN ('mumbai')
)
)
从TBL客户中选择*
哪里
custCode='CST1'
及
(
(
@accountType='Doemstic'
及
位于(‘北海道’、‘东京’)的城市
)
或
(
@帐户类型“Doemstic”
及
孟买市
)
)
如果有人有更好的想法,请分享检查此项