有一字段Result3 int类型  里面只有 0   2   null 三种情况我多条件查询时 要根据这个字段 来绑定数据   @result3 是存储过程 里面的 参数我 在查询框 什么都没输入时 可以查询出所有 数据输入 0 时 可以查出 0 相关数据输入 2 时 可以查出 2 对应 数据输入其他 数据 时 可以查 null 对应数据
 
ISNULL(Result3,9) =CASE WHEN @result3='0' THEN 0  
                 WHEN @result3='2' THEN 2                 
                 ELSE 9
                 END在查询框 什么都没输入时 可以查询出所有 数据 怎么来做? 不要说 用 like %%

解决方案 »

  1.   

    写程序判断下 什么都没有就select * from tb
      

  2.   

    分别做几个查询就可以了吧?
    if @result3 = 0 or @result3 = 2 
       select * from tb where ...
    else
       if @result3 is null
          select * from tb
       else
          select * from tb where ... is null
      

  3.   

    DECLARE @result3 INT
    SET @result3 = ''SELECT * FROM table_name
    WHERE 1 = 1
    AND (@result3 = '' OR 
    ISNULL(Result3,9) =CASE WHEN @result3='0' THEN 0  
                     WHEN @result3='2' THEN 2                 
                     ELSE 9
                     END
    )
      

  4.   

    做动态语句!设置一个where条件   where 1 = 1 +  动态部分条件!
      

  5.   


    (ISNULL(Result3,9) =CASE WHEN @result3='0' THEN 0 WHEN @result3='2' THEN 2 ELSE 9 END) or convert(int,@result3) =0
    这样可以不
      

  6.   

    你可以在业务逻辑中判断啊
    if(条件为空)
    {
    sql = "select * from table_name";
    }
     else if(条件==2||条件==0)
    {
    sql = "select * from table_name where 字段="+条件;
    }
    else
    {
    sql = "select * from table_name where 字段 is null";
    }