2010-08-05 37 views
3

簡單的表:可爲空號比參數大SQL查詢

create table Items 
(
    Price money null 
) 

現在我需要創建一個接受類型的一個放慢參數位的存儲過程@ItemsWithPriceTenDollarsOrMore其中:

  1. 返回所有項目如果參數爲空
  2. 如果參數= 1,則返回價格> = 10的所有項目
  3. 返回所有i價格< 10如果參數= 0

我很難在單個where語句(不使用動態sql或條件邏輯)中表示此過濾器。

回答

5

試試這個:

SELECT * FROM Items 
WHERE (@ItemsWithPriceTenDollarsOrMore = 1 AND Price >=10) 
OR (@ItemsWithPriceTenDollarsOrMore = 0 AND Price <10) 
OR (@ItemsWithPriceTenDollarsOrMore IS NULL) 
+0

美麗,謝謝帕維爾。 – Valentin 2010-08-05 13:09:33

+0

的確很漂亮。在我清楚地理解這一個之前打出了礦井。 – Raj 2010-08-05 13:12:41