解决方案 »

  1.   

    参数用null做默认值,然后:
    where a=isnull(@a,A)这样来判断,
      

  2.   

    这就是个查询语句,AND (ISNULL(@类型,'')='' OR 类型=@类型)
    AND (ISNULL(@平台,'')='' OR 平台=@平台)
    这是查询条件我想再加个查询条件
    就是这个F @状态 = '1'
         AND 状态 = 1 AND 标识 = 1  ';
    ELSE IF @状态 = '2'
         AND  状态 = 1 AND 标识 = 2 ';
    ELSE IF @状态 = '3'
        AND ( 状态 = -1 OR 状态 = 0 ) ';@状态是存储过程传入值,状态  和  标识   是表中的字段
      

  3.   

    你这样写没什么问题吧。
    如果非要判断@状态为‘’的话 
    你可以这样 
    IF @状态 is null
     and 1=1
      

  4.   


    当@状态为空时,不做判断,
    当@状态=1 时,增加判断条件 “状态 = 1 AND 标识 = 1”
    当@状态=2 时,增加判断条件 “状态 = 1 AND 标识 = 2”
    当@状态=3 时,增加判断条件 “状态 = -1 OR 状态 = 0”
    这是个查询语句的 where 部分
      

  5.   

    你这个用存储过程来写的话 就是拼接字符串
    用IF 判断是对的declare @sql nvarchar(max)
    SET @SQL='SELECT * FROM tb where xx and (ISNULL(@类型,'')='' OR 类型=@类型) and AND (ISNULL(@平台,'')='' OR 平台=@平台)
    IF @状态 is null
    SET @SQL=@SQL+'  and 1=1'
    IF @状态 = '1'     
    set @sql=@sql+'AND 状态 = 1 AND 标识 = 1 '
    ELSE IF @状态 = '2'    
     set  @sql=@sql+'AND  状态 = 1 AND 标识 = 2 '
    ELSE IF @状态 = '3'    
    set @sql=@sql+'AND ( 状态 = -1 OR 状态 = 0 ) '
      

  6.   

    你这个用存储过程来写的话 就是拼接字符串
    用IF 判断是对的declare @sql nvarchar(max)
    SET @SQL='SELECT * FROM tb where xx and (ISNULL(@类型,'')='' OR 类型=@类型) and AND (ISNULL(@平台,'')='' OR 平台=@平台)'
    IF @状态 is null
    SET @SQL=@SQL+'  and 1=1'
    IF @状态 = '1'     
    set @sql=@sql+'AND 状态 = 1 AND 标识 = 1 '
    ELSE IF @状态 = '2'    
     set  @sql=@sql+'AND  状态 = 1 AND 标识 = 2 '
    ELSE IF @状态 = '3'    
    set @sql=@sql+'AND ( 状态 = -1 OR 状态 = 0 ) '