create table a01(col1 varchar2(100));
insert into a01(col1) values('H1,H2,H3,H4,H5');create table a02(h1 varchar2(10),h2 varchar2(10),h3 varchar2(10),h4 varchar2(10),h5 varchar2(10));
insert into a02(h1,h2,h3,h4,h5) values('12','sdf','wer','33er','rt');
insert into a02(h1,h2,h3,h4,h5) values('er','hjh','wer','yy','rt');
insert into a02(h1,h2,h3,h4,h5) values('12','eer','wer','33er','bnbn');将a01的值作为字段列表来检索a02
select (select col1 from a01) from a02;
这样写里面的语句作为了字符串处理了,应该要这个效果
select H1,H2,H3,H4,H5 from a02;

解决方案 »

  1.   


    静态sql是不能支持表名和字段名的。只能用动态sql的方式来实现了拼出sql字符串通过execute immediate sqlstr;这样的方式来做,
      

  2.   

      select A1, A2 from a01 a left join 
            (select  column_name from user_tab_columns
            where upper(Table_name)=Upper('a02')) b
            on Upper(a.col1)=Upper(b.column_name)