我有一个执行查询的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