SQL Server CASE WHEN和IN构造

Jim*_*ard 4 sql t-sql sql-server

遇到WHERE搜索语句的问题想要使用类似的结构..

WHERE f.foo IN 
   CASE @bar
      WHEN 'BAR' THEN 
         ('FOO','BAR',BAZ')
      WHEN 'BAZ' THEN
         ('FOOBAR','FOOBAZ')
   END
Run Code Online (Sandbox Code Playgroud)

要么

WHERE CASE @bar
      WHEN 'BAR' THEN 
         f.foo IN ('FOO','BAR',BAZ')
      WHEN 'BAZ' THEN
         f.foo IN ('FOOBAR','FOOBAZ')
   END
Run Code Online (Sandbox Code Playgroud)

其中@bar是一个定义正确的临时变量,正确的类型,所有f都很好地定义..

我收到一个关于"错误',''的错误

Ada*_*son 5

WHERE (@bar = 'BAR' and f.foo IN ('FOO', 'BAR', 'BAZ')) OR
      (@bar = 'BAZ' and f.foo IN ('FOOBAR', 'FOOBAZ'))
Run Code Online (Sandbox Code Playgroud)