Sql server where子句中的用例?
可能重复:Sql server where子句中的用例?,sql-server,tsql,Sql Server,Tsql,可能重复: TSQL-在带有
TSQL-在带有<或=符号的WHERE子句中使用CASE 如何在SQL Server存储过程中使用此查询
@VAR1 VARCHAR(2),
AS
SELECT
*
FROM
TABLE1
WHERE
Colum1 = 1
CASE WHEN @VAR1 = 'OK' THEN
AND Colum2 = @Var1
ELSE
AND Colum2 IN ('String1','String2')
END
现在非常感谢。正如Martin Smith在评论中指出的那样,您不能使用
CASE
替换WHERE
子句
你能做的是:
SELECT
*
FROM
TABLE1
WHERE
Colum1 = 1
AND
(
(@VAR1 = 'OK' and Colum2 = @VAR1)
OR
(@VAR1 <> 'OK' and Colum2 IN ('String1','String2'))
)
选择
*
从…起
表1
哪里
列1=1
及
(
(@VAR1='OK'和Colum2=@VAR1)
或
(@VAR1'OK'和Colum2 IN('String1','String2'))
)
是的,它工作得很好。非常感谢你。