日期:2014-05-16 浏览次数:20695 次
--oracle行转列的通用实现: --将'A,B,C'转换为: --A --B --C --实现方法:(大家可以自由发挥) --1.定义一个类型 create type type_row is table of varchar2(200); --2.创建函数 create function split(p_list varchar2) return type_row pipelined IS l_idx pls_integer; v_list varchar2(50) := p_list; begin loop l_idx := instr(v_list, ','); if l_idx > 0 then pipe row(substr(v_list, 1, l_idx - 1)); v_list := substr(v_list, l_idx + length(',')); else pipe row(v_list); exit; end if; end loop; return; end; --3.转换 select column_value from table(split('A,B,C'));