Tsql sql:case when(带in-param值)

Tsql sql:case when(带in-param值),tsql,sql-server-2008-r2,Tsql,Sql Server 2008 R2,你能帮忙吗 SELECT (some columns), SortOrder = CASE WHEN City = @inParamCity THEN 0 ELSE 1 END FROM dbo.addressBook ORDER BY SortOrder 我试了一下,得到了: Incorrect syntax near '=' ' – 难道不是这样吗 SELECT (some columns), CASE City WHEN @inParamCity THEN 0 ELSE

你能帮忙吗

SELECT 
(some columns), 
SortOrder = CASE WHEN City = @inParamCity THEN 0 ELSE 1 END 
FROM 
dbo.addressBook 
ORDER BY 
SortOrder
我试了一下,得到了:

Incorrect syntax near '=' ' –

难道不是这样吗

SELECT (some columns), 
CASE City WHEN @inParamCity THEN 0 ELSE 1 END As SortOrder 
FROM dbo.addressBook 
ORDER BY SortOrder

您使用的是哪个版本的SQL Server???这在我的SQL Server 2008 R2版本上完美无瑕……2008 R2。你所说的很奇怪,因为有些人说他们看到了语法错误(见@Adam Wenger)@EladBenda我不正确,这在我刚刚测试的代码上也可以正常工作(SQL Server 2008R2),但它与最初的帖子完全相同。没有功能性差异
SELECT (some columns), 
CASE City WHEN @inParamCity THEN 0 ELSE 1 END As SortOrder 
FROM dbo.addressBook 
ORDER BY SortOrder