SQL - Conditional WHERE clause

后端 未结 7 1976
庸人自扰
庸人自扰 2020-12-17 04:36

I have a SQL Server 2005 stored procedure that performs a query. This stored procedure takes in three parameters. The parameters are as follows:

@Stat

7条回答
  •  北荒
    北荒 (楼主)
    2020-12-17 05:07

    Try it with coalesce, I think it's a very elegant, clean approach:

    SELECT *
    FROM Customer c
    WHERE
     c.StateID=@StateID 
     AND c.CountyID = COALESCE(@CountyID, c.CountyID)
     AND c.CityID = COALESCE(@CityID, c.CityID)
    

    (Be aware though - this will filter out records with nulls in CountyID or CityID.)

提交回复
热议问题