2012-08-10 90 views
0

我有一個存儲過程需要幾個參數,其中兩個允許空值。Where子句根據NULL參數改變?

param1 = null [name] 
param2 = null [id] 

我要實現以下邏輯:

if param1 is null then where clause = (where col2 like param2) 
else if param2 is null then where clause = (where col1 like param1) 
else where clause = (where col2 like @param2 and col1 like param1) 

Param1param2允許空值,但必須填寫。如果param1param2都留空,則預計不會輸出。我只是無法獲得正確的語法。

+0

問:什麼是你的問題?問:你使用什麼語言? T-SQL?還有別的嗎? – paulsm4 2012-08-10 19:25:40

回答

2

我不知道在那裏的問題,但我會提供:

where (param1 is not NULL or param2 is not NULL) and 
    (((col1 like param1) or param1 is NULL) or 
    ((col2 like param2) or param2 is NULL)) 
+0

謝謝!我知道了。我和你的或者是錯的。 – Matt 2012-08-10 19:52:43

+0

@Matt:如果這實際上幫助你,請考慮[正式接受答案](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work「如何接受回答工作?「)。 – 2012-08-10 20:01:40

+0

@HABO--你是一個比我更好的人,因爲他能夠預測被要求的東西;)幹得好! – paulsm4 2012-08-10 20:33:50