要求    当满足一个条件或者多个条件时都能够查询出数据!
     原有的SQL语句 select a.zyls1,a.zyls11,a.zyls2,a.zyls22,b.gsname,b.tel,a.title,a.id,a.adddate,b.lsr from wlw_jyzx_glyl as a left join wlw_user as b on a.username=b.username where a.title like '@title'  and (a.zyls11=@zyls11 or a.zyls11 is null) and (a.zyls1=@zyls1 or a.zyls1 is null) and (a.zyls2=@zyls2 or a.zyls2 is null) and (a.zyls22=@zyls22 or a.zyls22 is null)

解决方案 »

  1.   

    都加上 or @zyls11 is null
      

  2.   

    select a.zyls1,a.zyls11,a.zyls2,a.zyls22,b.gsname,b.tel,a.title,a.id,a.adddate,b.lsr 
    from wlw_jyzx_glyl as a left join wlw_user as b on a.username=b.username 
    where a.title like '@title' 
    and (a.zyls11=isnull(@zyls11,a.zyls11)
    and (a.zyls1=isnull(@zyls1,a.zyls1) 
    and (a.zyls2=isnull(@zyls2,a.zyls2) 
    and (a.zyls22=isnull(@zyls22,a.zyls22)
      

  3.   

       最简单的可以实现效果的SQL
      

  4.   

    select a.zyls1,a.zyls11,a.zyls2,a.zyls22,b.gsname,b.tel,a.title,a.id,a.adddate,b.lsr 
    from wlw_jyzx_glyl as a left join wlw_user as b on a.username=b.username 
    where a.title like '@title' 
    and isnull(a.zyls11,@zyls11)=@zyls11 
    and isnull(a.zyls12,@zyls11)=@zyls12 
    and isnull(a.zyls122,@zyls11)=@zyls122 
      

  5.   

    --这里也不对吧
    a.title like '@title' 
    -->
    a.title like '%'+@title+%'' 
      

  6.   

    --更正
    select a.zyls1,a.zyls11,a.zyls2,a.zyls22,b.gsname,b.tel,a.title,a.id,a.adddate,b.lsr 
    from wlw_jyzx_glyl as a left join wlw_user as b on a.username=b.username 
    where a.title like '%'+@title+'%' 
    and a.zyls11=isnull(@zyls11,a.zyls11)
    and a.zyls1=isnull(@zyls1,a.zyls1) 
    and a.zyls2=isnull(@zyls2,a.zyls2) 
    and a.zyls22=isnull(@zyls22,a.zyls22)
      

  7.   


    我们都不对~~null<>null
      

  8.   

    按我的理解
    当变量传null时候查询所有
    个人理解 不代表楼主观点
      

  9.   

       所以我要让他可以为NULL     不为NULL  我怎么可以用一条SQL实现2种效果
      

  10.   


    --如果变量不为null我这就是对的
    select a.zyls1,a.zyls11,a.zyls2,a.zyls22,b.gsname,b.tel,a.title,a.id,a.adddate,b.lsr 
    from wlw_jyzx_glyl as a left join wlw_user as b on a.username=b.username 
    where a.title like '@title' 
    and isnull(a.zyls11,@zyls11)=@zyls11 
    and isnull(a.zyls12,@zyls11)=@zyls12 
    and isnull(a.zyls122,@zyls11)=@zyls122 
      

  11.   

    FUCK       按照条件我原有的SQL可以查询出来了!   FUCK计算机  什么都没改!
      FUCK 办公室的垃圾网络
      

  12.   

    条件为空改成条件为NULL
    然后重试下11#代码
      

  13.   

    不是和你说了吗a.zyls11为空时查不出来
      

  14.   

    那就加上isnull吧
    isnull(a.zyls11,'')=isnull(@zyls11,isnull(a.zyls11,''))
    谢谢提出
      

  15.   

    我觉得~搞这么多还不如LZ自己写的那个好~~
    而且你这样的话''=null了