2010-08-18 63 views

回答

2

如果未指定diplomaPercentage返回的將是所有行(即通過空),在其他情況下將被返回的行在diploma_percentage多於或等於@diplomaPercentage。 :)

1

@diplomaPercentage是一個變量。

@diplomaPercentage爲null時檢查所述變量爲NULL或不和

diploma_percentage> = @ diplomaPercentage被檢查,如果該列值diploma_percentage大於或等於變量值

1

如果給它一個空值爲@diplomapercentage那麼它將返回所有記錄,否則它將只返回diploma_percentage值大於或等於您提供的值的記錄。

1

如果@diplomaPercentage沒有值傳遞它,它會返回所有的行,否則將返回所有行其中,如果值已經

2

已經通過這種狀況通常是diploma_percentage比@diplomaPercentage更大用於避免「動態SQL」,但與僅使用動態SQL相比,它使代碼變得醜陋和具有諷刺意味可能導致更糟的性能。你可以閱讀更多關於此:

http://www.sommarskog.se/dyn-search-2005.html

+0

然後什麼是替代寫這個查詢? 請稍微編碼... – NoviceToDotNet 2010-08-19 04:57:28

+0

在存儲過程中,您只需使用一些IF..ELSE來構建SQL語句,然後將其提供給EXEC。你讀過我發佈的文章嗎? – sayap 2010-08-19 09:19:48

+0

但我的存儲過程是簡單的參數化查詢,我在<字符串,對象>形式傳遞字典對象 – NoviceToDotNet 2010-08-19 09:58:21