'全部'时的情况

时间:2013-09-12 19:15:12

标签: 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

1 个答案:

答案 0 :(得分: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