我有一種情況,我調用存儲過程並傳入一些變量。在某些情況下,我將傳入null,並且我希望它返回所有內容。採取以下(年齡是整數列):T-SQL其中int = @ var/@ var = null?
[Table]
[Name] | [Age]
Mike | 22
Fred | 18
Bob | 22
SELECT * FROM [table] WHERE [Age][email protected]
現在,如果我通過22我會得到邁克和鮑勃。同樣在18歲時傳球會讓我得到弗雷德。但是,如果我想要全部3行,當我傳入null /不設置@AgeVar?這是一個非常簡單的問題。
編輯:雜誌是非常複雜的,我真的不想要所有的部分,因爲不得不在兩倍於下面的答案之一。還有其他方法嗎?
閱讀[Catch-all queries](http://sqlinthewild.co.za/index.php/2009/03/19/catch-all-queries/) – 2012-02-21 17:26:02
如果您沒有時間點擊Joe的鏈接到他非常優秀的文章,他表明使用動態SQL可能會超越這種方法。 – DOK 2012-02-21 17:45:06
@DOK:要說清楚,我不是該文章的作者。那篇文章是由Gail Shaw撰寫的,他比我在SQL Server上聰明得多。 – 2012-02-21 17:46:58