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'))
)

是的,它工作得很好。非常感谢你。