其中id为另一表b的不可重复的关键字,我想最终用select语句查出这样的结果
id b.bf1,b.bf2...af值
1  t1    tt1     1
1  t2    tt2     2
  .....
1  t32   tt32    32
2  t33   tt33    1
2  t34   tt34    2
 ....
2  t64   tt64    32
....
t*为表字段中的值。

解决方案 »

  1.   

    晕,我说的是:
        怎样用select语句将一个表中的某一字段按内容分成另一个表的字段内容?
    如:表a有一个字段,其内容为文本,格式为:数字,数字...即数字间用,隔开的字符串。现在将其分开成一个个的数字,并且每一数字为另一表b的某一字段的值。然后我在将表b和另外的表连起来查询。不知我表述清楚没有?
      

  2.   

    create or replace type mytabletype as table of number;
    /create or replace function strtab(p_str in varchar2)
    return mytabletype
    as
    lstr varchar2(1000) default p_str||',';
    ln   number;
    ldata   mytabletype:=mytabletype();
    begin
    loop
      ln:=instr(lstr,',');
      exit when (nvl(ln,0)=0);
      ldata.extend;
      ldata(ldata.count):=ltrim(rtrim(substr(lstr,1,ln-1)));
      lstr:=substr(lstr,ln+1);
    end loop;
    return ldata;
    end;
    /SQL> select * from table(cast(strtab('11,12,13') as mytabletype));COLUMN_VALUE
    ------------
              11
              12
              13SQL> create table bb(id varchar2(2),name varchar2(10));Table createdSQL> insert into bb values('11','张三');1 row insertedSQL> insert into bb values('12','李四');1 row insertedSQL> insert into bb values('13','王五');1 row insertedSQL> select * from bb where id in (select * from table(cast(strtab('11,12,13') as mytabletype)));ID NAME
    -- ----------
    11 张三
    12 李四
    13 王五