select * from a,b where a.a1=b.a1 and a.a2=aaaa根据情况不同所取值不同,假如某种情况下我要查出对a2列没有控制的所有值,又要保持这个sql语句的这种写法,,那么a.a2=aa这个该怎么写呢?

解决方案 »

  1.   

    select * from a,b where a.a1=b.a1 and a.a2=isnull(@aa,a.a2)
      

  2.   

    select * from a,b where a.a1=b.a1 and a.a2=aaaa根据情况不同所取值不同,假如某种情况下我要查出对a2列没有控制的所有值,又要保持这个sql语句的这种写法,,那么a.a2=aa这个该怎么写呢?
    用判断语句成不?
    declare @a2 as varchar(10)
    set @a2 = 'value' --有这句,不为空,没有,则为空
    if @a2 is null
       select * from a,b where a.a1=b.a1
    else 
       select * from a,b where a.a1=b.a1 and a.a2 = @a2
      

  3.   

    dawugui(潇洒老乌龟) 不能这么做的,呵呵,不过还是谢谢你。
    子陌红尘:如果sql语句这样写,那对a2没控制的时候,@aa该取什么值呢?
      

  4.   

    select * from a,b where a.a1=b.a1 and a.a2=a.a2
      

  5.   

    土土土猪:就是a2列取所有的值,相当于: select * from a,b where a.a1=b.a1           呵呵。可能我的表达有问题
      

  6.   

    楼主说不能用判断,我猜测是不是因为是前台的拼接语句
    一定要一句SQL搞定的?
    如果是这样的话,可以在前台做判断。我乱理解的~厄
      

  7.   

    我重新想了一下,用dawugui(潇洒老乌龟)的还是可以做的,呵呵/结贴了。