试试not like 。 

解决方案 »

  1.   

    是查询表B,不是A,如果是A,当然not like行,但B怎么写?
      

  2.   

    select * from b where columnB not in(select columnA from a)
      

  3.   

    你如果要用not in 的话, 存放就不要用aaaa||aaa||bbbb||
    用"aaaa","aaaa","aaaa" 多好啊?
      

  4.   

    to  jintaocom(贫民张大嘴) ( 
    A、B表都是多条,
    ================================select * from b where columnB not in(select columnA from a)
    这个明显不对。
    ===================to  key_feng(射手之№雏)
    用存儲過程
    如何写?我很少用存儲過程
      

  5.   

    select b.* from B where b.columnB in (select b.columnB from b,a where instr(a.columnA, b.columnB) = 0);
    意思是这样吧,我没有测试过
      

  6.   

    应该是这样:
    select * from tableB b where b.ID in (select b.ID from tableA a where instr(a.columnA, '||'||b.columnB||'||') <> 0);如果columnA不是以“||”开头结尾,则也要写成'||'||a.columnA||'||'
    试试吧
      

  7.   

    同意楼上,但是表a的那个字段应该前后都用||分隔,如:||aaa||bbb||ccc||ddd||
    查找的时候sql+="instr(a.A,"+"'||"+"b.B"+"||')>0";
      

  8.   

    楼的主应该正解,
    但性能不是很好
    我的A中有二百多条,B中有2000多条,怎么查询出来,上万条?------------------------
    这个是设计的问题,如果这样,就不应该用a标的一个字段来记录多条b
    应该设计成b的外键
    select * from a where a.A not in (select distinte b.id from b)
      

  9.   

    应该是这样:
    select * from tableB b where b.ID in (select b.ID from tableA a where instr(a.columnA, '||'||b.columnB||'||') <> 0);如果columnA不是以“||”开头结尾,则也要写成'||'||a.columnA||'||'
    试试吧
    这个应该对。
      

  10.   

    SELECT *
    FROM b
    WHERE (columnB NOT IN
              (SELECT b.columnB
             FROM b CROSS JOIN
                   a
             WHERE (CHARINDEX(b.columnB, a.columnA) <> 0)))