选择多个案例条件

时间:2017-07-20 11:05:09

标签: sql sql-server database

我希望在案件判断为

之后获得多重选择
   @value

select * from [dbo].[Currency_Tbl]

WHERE  [Currency_Active_YN]=
  CASE WHEN @value = 1 THEN 
   ( 1 or 0)
  ELSE 
     @Value = 0 then 0 
  END

它不接受col1中的第一行但接受col2

如何在THEN之后选择多个数字?

2 个答案:

答案 0 :(得分:2)

您不能在case条款中使用where。使用布尔逻辑

select * from [dbo].[Currency_Tbl]
WHERE (@value = 1 and [Currency_Active_YN] in (0,1))
   OR (@value = 0 and [Currency_Active_YN] = 0)

答案 1 :(得分:2)

你不需要一个案例去做你想做的事情。假设Currency_Active_YN是一个非空bit字段,则以下逻辑就足够了。

select * from [dbo].[Currency_Tbl]
WHERE (@value=1 OR [Currency_Active_YN]=@Value)