-1

我正在做一场噩梦,试图想出一些可以在 SQL Server 2008 中实现以下目标的东西。

如果变量 = 1,我将 3 个变量传递给存储过程,那么我需要在 where 语句中添加子句

我正在尝试做的一个简单的细分是在这里:

SELECT * 
FROM products 
WHERE categoryId = @categoryId
If @var1 = 1 Then
AND var = @var1
If @var2 = 1 Then
AND var2 = @var2
If @var3 = 1 Then
AND var3 = @var3

ORDER BY productName
4

1 回答 1

4

执行此操作的典型方法是将逻辑直接放在where子句中:

where categoryId = @categoryId and
      (@var1 <> 1 or var = @var1) and
      (@var2 <> 1 or var2 = @var2) and
      (@var3 <> 1 or var3 = @var3)
于 2013-05-07T14:50:43.313 回答