日期:2014-05-17  浏览次数:21099 次

求助:一条值根据多列如何变为多条值????
请问有没什么办法把这一条值根据后面三列
得到多条数据


我是要把得到的数据插入到另一个表,根据每个列分别写一个语句可以,不过列有十几个,要写十几条,想看看能否放一起实现,网上查的都是根据某列的值变为多行,不知这种情况是否能实现????
sql

------解决方案--------------------
CREATE OR REPLACE PROCEDURE gettaskdone AS
  v_sql VARCHAR2(2000);
BEGIN
  v_sql := 'INSERT INTO t3 ';
  FOR i IN (SELECT ywlb, xmlx, colname FROM t1 WHERE ywlb = '001') LOOP
    v_sql := v_sql 
------解决方案--------------------
 'SELECT lsh, grbjh, djrq,' 
------解决方案--------------------
 i.ywlb 
------解决方案--------------------
 ',' 
------解决方案--------------------
 i.xmlx 
------解决方案--------------------
 ',' 
------解决方案--------------------
 i.colname 
------解决方案--------------------
 ' FROM t2 WHERE ' 
------解决方案--------------------

             i.colname 
------解决方案--------------------
 ' IS NOT NULL UNION ALL';
  END LOOP;
  v_sql := substr(v_sql, 1, length(v_sql) - 9);
  dbms_output.put_line(v_sql);
  EXECUTE IMMEDIATE v_sql;
END gettaskdone;