select a.a0,b.b0
from a,b
where a.a1=b.b1
  and(isnull(a.a2,'')='' or b.b11<=a.a2 and a.a2<=b.b22)
  and(isnull(a.a3,'')='' or b.b31<=a.a3 and a.a3<=b.b32)

解决方案 »

  1.   

    SELECT a.a0, b.b0
    FROM a
    INNER JOIN b ON b.b1 = a.a1
    WHERE (a.a2 IS NULL OR b11 <= a2 <= b22)
    AND (a.a3 IS NULL OR b31 <= a3 <= b32)
      

  2.   

    select a0,b.b0
    from aleft outer join  b 
    on a.a1=b.b1where (isnull(a.a2,'')='' or b.b11<=a.a2 and a.a2<=b.b22)
      and(isnull(a.a3,'')='' or b.b31<=a.a3 and a.a3<=b.b32)
      

  3.   

    这个不是回你了吗??
    select a.a0,b.b0
    from a  join b on a.a1=b.b1 and(isnull(a.a2,'')='' or (b.b11<=a.a2 and a.a2<=b.b22))
      and(isnull(a.a3,'')='' or (b.b31<=a.a3 and a.a3<=b.b32))
      

  4.   

    up  同意楼上的
     haoK(haoK.Y) 的需要改一改SELECT a.a0, b.b0
    FROM a
    INNER JOIN b ON b.b1 = a.a1
    WHERE (a.a2 IS NULL OR b21 <= a2 and a2<= b22)
    AND (a.a3 IS NULL OR b31 <= a3 and a3<= b32)