我有一個執行查詢的SQL Server 2005存儲過程。該存儲過程需要三個參數。參數如下:SQL - 有條件的WHERE子句
@StateID如int,
@CountyID如int,
@CityID爲INT
這些參數用於查詢客戶的名單。如果參數值不爲空,我想基本上做一個「AND」。但是,我現在不能做一個if-else。如果參數值不爲null,如何添加這些子句。換句話說:
SELECT
*
FROM
Customer c
WHERE
[email protected]
-- AND [email protected] IF @CountyID IS NOT NULL
-- AND [email protected] IF @CityID IS NOT NULL
由於可控性,這將表現不佳。請參閱gbn的答案以尋求替代方案。 – 2010-02-24 21:52:02
OMG Ponies - 是因爲Aaron在OR後有NULL檢查嗎? – stack 2010-02-25 20:22:20
亞倫的回答,與gbn的不同,即使列CountyID本身可能包含NULL值,也可以工作。我需要類似於這個問題中的類似功能,但是我的列有一些NULL值;這個爲我工作。 – 2012-08-31 12:13:43