有两个表表A id content
001 AA:qq1111表B iid
qq1111 我写了如下语句:
select * from A left B on A.content like '%B.iid%' where B.iid='qq1111'
这样写是不正确的,
请问怎么写才对啊?谢谢指教。

解决方案 »

  1.   

    -- TRY IT ..
    SELECT *
      FROM A
      LEFT B ON A.CONTENT LIKE '%'||B.IID||'%'
     WHERE B.IID = 'qq1111';
      

  2.   

    或者用INSTR也行。
    ...
    WHERE INSTR(A.CONTENT,B.IID) > 0
    ...
      

  3.   

    思路奇怪,你要查什么?
    不能 Left B, 用Left join B
      

  4.   

    我就想查A表中的数据,A表中的content字段的值 like  B表中iid字段的值
      

  5.   


    /--是不是这个意思?select a.id, a.content, b.iid
      from A, B
     where A.content = B.iid
       and B.iid = 'qq1111';
      

  6.   

    不是,A.content != B.iid
    应该是A.content like B.iid
      

  7.   

    SQL> select * from A;        ID CONTENT
    ---------- --------------------------------------------------------------------------------
             1 AA:qq111111
             2 AA:ER00239
             3 BB:099qqfffSQL> SELECT * FROM B;IID
    --------------------------------------------------------------------------------
    qq111111
    gr34566SQL> select a.* from A, B where instr(A.content, B.iid) > 0;        ID CONTENT
    ---------- --------------------------------------------------------------------------------
             1 AA:qq111111
      

  8.   


    select a.id, a.content, b.iid
      from A, B
     where A.content like "'%" || to_char(B.iid) || "%'";
      

  9.   

    to LZ:
    还是8楼的好用些,试一下instr字符串查找函数吧。
      

  10.   

    tankyou  to0  虽然没分了 呵呵