存儲過程中如何根據參數是否爲空執行不同的select??

存儲過程中如何根據參數是否爲空執行不同的select??
假設表T1,其中有A1,A2,D1,D2等多個字段,A1,A2爲varchar型,D1,D2爲日期型。 
傳來四個參數,@A1,@A2,@D1,@D2,如果爲空,則不必理會;如果不爲空,則加到條件子句中。

@A1,@D1不空爲,那麼。
要執行select * from t1 where
a1=@A1 and d1>=@D1
如果@A2,@D2不爲空,則執行 select * from t1 where
A2=@A2 and d2 <=@D2
當然,這四個參數是不固定有沒有的,可能這次查詢沒有,下次查詢就有了。
也可能同時都爲空,那麼就執行select * from t1即可。
請問這樣的存儲過程應該怎麼寫?
謝謝。

--這樣應該就沒問題了。
select * from tb
where A1=isnull(@A1,A1)
and  A2=isnull(@A2,A2)
and D1=isnull(@D1,D1)
and D2=isnull(@D2,D2)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章