我有一个执行查询的SQL Server 2005存储过程。该存储过程采用三个参数。参数如下:
@StateID为int, @ CountyID为int, @ CityID为int
这些参数用于查询客户列表。如果参数值不为null,我基本上想做一个“ AND”。但是,我目前无法执行if- else。如果参数值不为null,如何添加这些子句。换一种说法:
SELECT * FROM Customer c WHERE c.StateID=@StateID -- AND c.CountyID=@CountyID IF @CountyID IS NOT NULL -- AND c.CityID=@CityID IF @CityID IS NOT NULL
加上一些OR语句:
SELECT * FROM Customer c WHERE c.StateID=@StateID AND ( c.CountyID=@CountyID OR @CountyID IS NULL ) AND ( c.CityID=@CityID OR @CityID IS NULL )
对于这些参数中的每个参数,如果它为null,则基本上忽略该检查。