
SQL代码 列转行
select
REGEXP_SUBSTR(a.rolecode ,'[^,]+',1,l)
rolecode
from (
select 'a,aa,aaa' rolecode from dual
) a,
(SELECT LEVEL l FROM DUAL CONNECT BY LEVEL<=100) b
WHERE l <=LENGTH(a.rolecode) - LENGTH(REPLACE(rolecode,','))+1
或者
with a as (select 'ABC,AA,AD,ABD,JI,CC,ALSKD,ALDKDJ' id from dual)
select regexp_substr(id,'[^,]+',1,rownum) id from a
connect by rownum <= length(regexp_replace(id,'[^,]+'))
SQL代码 行转列
select name,coures,to_char(wmsys.wm_concat(xxx.score)) c
from (select '小明' name,'语文' coures,90 score from dual
union all
select '小明' name,'语文' coures,91 score from dual
union all
select '小明' name,'数学' coures,90 score from dual
union all
select '小明' name,'数学' coures,91 score from dual) xxx group by xxx.name,coures