将同一列与两个可能的参数tsql进行比较。

时间:2013-05-20 20:25:38

标签: sql-server tsql

在我的场景中,用户可以选择2个可能的参数(@ param1,@ param2)。  如果用户选择param1,则WHERE子句使用第一个子句。如果用户选择param1和param2,则它们都在WHERE子句中使用。

如果我有权访问DOM,我可以根据控件使用一些c#逻辑。在这种情况下,我不能这样做,所以它需要是纯t-sql。这是我需要完成的一些PSUEDOCODE:

// NOT REAL CODE 
 IF param1 is selected and param2 is not then use param1 
 IF param1 and param2 are selected use both (I can do this part with an IN statement) 

如何使用纯tsql完成此操作?

1 个答案:

答案 0 :(得分:0)

我相信这就像你要做的那样:How To Include An Optional Null Parameter In SQL Server

你可以这样做:

SELECT *
  FROM myTable
  WHERE
    (@param2 IS NULL AND myCol = @param1) OR
    (@param2 IS NOT NULL AND myCol IN (@param1, @param2))