我有2個字段的表學生搜索:編寫SQL與多個條件
Name: nvarchar(256)
Age: int
用戶將使用一個WinForm應用程序輸入名稱和用於搜索時代。
- 如果輸入的名稱爲空,sql將不會查詢名稱字段。
- 如果輸入的Age是0,sql將不會查詢Age字段。
- 如果名稱爲空且輸入名稱爲空 - >記錄匹配。如果名稱爲空且輸入的名稱不爲空 - >記錄不匹配。 Age字段也類似。
我的問題是,如何寫這樣的SQL。
P/S:我使用SQL Server 2005.
請幫幫我。謝謝。
該查詢不應強制啓動表掃描。還要注意''和0與NULL不相同。 – TomTom 2010-05-05 04:15:28
@TomTom:從理論上講,第一個查詢不一定會導致表掃描,但實際上它可以處理99.9%的情況,因爲查詢分析器會在查詢中看到很多值列。通常這些價值欄不適合指數。 – Codism 2012-11-14 17:21:30