mssql sqlserver 在存储过程中当参数为NULL时或空值时不加入搜索条件的方法分享


摘要:
下文讲述两种当检索条件为空或NULL时,不作为检索条件的方法分享,如下所示:
实验环境:sql server 2008 R2



实现思路:
方法1:将空值和null和实际值都放入查询条件中,使用or关键字连接
方法2:使用case when 对条件做相应的判断
具体实现方法如下所示:

CREATE PROCEDURE  pr_maomao365
 @billNo varchar(80)
 as    
begin
    ---方法1:使用or关键字多重判断
       select  billNo,[列1],[列2],[列3] ... from 
        tableName 
       where    (
               billNo =@billNO
               or billNo is null 
               or billNo=''
        )
   
   ----方法2:使用case when 
      select  billNo,[列1],[列2],[列3] ... from 
        tableName 
       where    billNo = (
                case 
                     when isnull(@billNo,'') <> ''  
                     then   @billNo
                     else billNo
                end 
        )
end 
go