2013-05-20 25 views
0

這是我的場景,用戶可以選擇2個可能的參數(@ param1,@ param2)。 如果用戶選擇param1,那麼WHERE子句使用第一個。如果用戶選擇param1和param2,那麼它們都在WHERE子句中使用。將同一列與兩個可能的參數tsql比較。

如果我有權訪問DOM,我可以使用一些基於控件的c#邏輯。在這種情況下,我不能這樣做,所以它需要是純t-sql。下面是一些僞代碼什麼,我需要完成:

// 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?

+2

什麼決定,如果選擇一個參數?你是否爲'@ param2'或其他東西傳遞了特殊值? –

+0

param1來自頁面上的ddl。它會被最頻繁地傳遞,第二次只會在一段時間內被用戶用於特定目的。 – briskovich

+0

您提到的「IN」意味着一個「OR」關係,即類似於'Col = @ param1或(Col = @ param2或@ param2是NULL)'。 – HABO

回答