用oracle自带的函数instr()应该可以实现你的SQL,
select 表1.aa,表1.bb,表2.cc from 表1,表2 
where to_number(表2.cc)>3 and instr(表1.aa,表2.aa);如果对instr()函数还不太清楚的话,可以自己再查一下详细的资料

解决方案 »

  1.   

    对不起,完整的SQL应该是:select 表1.aa,表1.bb,表2.cc 
    from 表1,表2 
    where to_number(表2.cc)>3 
    and instr(表1.aa,表2.aa)>0;
      

  2.   

    select A.a,A.b,B.c
    from AA A,BBB B
    where A.a like '%2%' and B.c='4';我調過了,結果是serlen(serlen)想要的!
      

  3.   

    sorry :) 應該是:
     select s.aa,s.bb,t.cc
     from 表1 s,表2 t 
     where s.aa like '%2%' and t.cc='4';
      

  4.   

    关键是我不一定是2啊
    是动态的
    我用instr会多产生一些记录啊
      

  5.   

    select a.aa,a.bb,c.cc from a ,b where b.cc>3 and instr(a.aa,b.aa)>0
      

  6.   

    guangli_zhang(广丽) 
       动态SQL怎么做啊
      

  7.   

    我知道,怎么做了,还是得用instr
      

  8.   

    SQL> SELECT * FROM TB1;AA         BB
    ---------- ----------
    1          D
    1,2        C
    2,3        ESQL> SELECT * FROM TB2;AA                 CC
    ---------- ----------
    1                   3
    2                   4
    SQL> SELECT * FROM (
      2  SELECT TB1.AA,TB1.BB,(
      3  SELECT MAX(CC) FROM TB2 WHERE INSTR(','||TB1.AA||',',','||TB2.AA||',')>0 HAVING MAX(CC)>3) CC
      4  FROM TB1
      5  ) T
      6  WHERE T.CC IS NOT NULL;AA         BB                 CC
    ---------- ---------- ----------
    1,2        C                   4
    2,3        E                   4SQL>