TSQL Case in where statement if parameter is null

前端 未结 4 1214
失恋的感觉
失恋的感觉 2021-02-06 01:09

I have a SP that gives me a lot of hard times.

The sp gets a two parameters @madeByUserId and @reportedByUserId. I want to have something like:

 select          


        
4条回答
  •  我在风中等你
    2021-02-06 01:38

    You could use COALESCE.

    SELECT  * 
    FROM    Table
    WHERE   MadeByUserId = @madeByUserId 
            AND ReportedByUserID = COALESCE(@reportedByUserID, ReportedByUserID)
    

    This translates to

     if @reportedByUserID is `NOT NULL` then 
       compare ReportedByUserID with @reportedByUserID
     else
       compare ReportedByUserID with ReportedByUserID
    

    From MSDN

    COALESCE

    Returns the first nonnull expression among its arguments.

提交回复
热议问题