'全部'时的情况

Mat*_*oll 3 sql sql-server sql-server-2012

我在存储过程中遇到了一个我无法弄清楚的问题.我需要为5个项目应用一个案例过滤器,如果它是一个特定项目,我需要它返回所有之前的5个项目.

代码是这样的:

...
WHERE [dbo].[ID] = CASE @var
  WHEN 'a' THEN 0
  WHEN 'b' THEN 1
  WHEN 'c' THEN 2
  WHEN 'd' THEN 3
  WHEN 'e' THEN 4
  WHEN 'all' THEN -- return 0 through 4 as possible answers
END
Run Code Online (Sandbox Code Playgroud)

Rob*_*ert 5

为了ALL价值,你需要放置 [dbo].[ID] = [dbo].[ID]条件

WHERE [dbo].[ID] = CASE  @var
  WHEN 'a' THEN 0
  WHEN 'b' THEN 1
  WHEN 'c' THEN 2
  WHEN 'd' THEN 3
  WHEN 'e' THEN 4
  WHEN 'all' THEN [dbo].[ID] 
END
Run Code Online (Sandbox Code Playgroud)