表Aname  flag
a     1
b     1
c     2表B
name 
a
a+1
a+2
b
b+1
c
c+1如何取出
a
a+1
a+2
b
b+1谢谢!

解决方案 »

  1.   

    没看懂,是表A中如果FLAG=2,就不取表B中的相应数值吗?
      

  2.   

    select b.name from b,a where a.name=substr(b.name,1,1) and a.flag<>2
    看看可以不
      

  3.   

    楼上的SQL语句针对于"+"前面只有一个字符的可以用,但如果"+"前面不只一个字符的话,就不具有通用性啦!
    select bb.name from bb,aa where aa.flag<>2
    and substr(bb.name,1,length(aa.name))=aa.name
      

  4.   

    哈哈,上面的语句不小心掉了一个条件
    在ORACLE中可以用这条SQL语句实现,在SQL SERVER中只需要将NVL函数换成NULLIF函数即可select bb.name from bb,aa where aa.flag<>2
    and substr(bb.name,1,length(aa.name))=aa.name
    and nvl(substr(bb.name,length(aa.name) + 1,1),'+')='+'
      

  5.   

    那搂主快点给迷底把,到底是什么条件
    对bai_jiong 赞一个
      

  6.   

    不好意思,没表达清楚,就是取flag = 1 的数据