琪琪色原网站,琪琪色影院,琪琪色原网站影音先锋_是全亚洲更新最快

请问oracle有listagg的反函数吗? 比如将1条记录 1 AA,BB,CC 变成 1 AA ,1 BB, 1 CC 3条记录

发布于 11/19 10:15
阅读 167
收藏 0

请问oracle有listagg的反函数吗? 比如将1条记录 1 AA,BB,CC 变成 1 AA ,1 BB, 1 CC 3条记录

加载中
0

unpivot 看看是否符合你的需求

回复 : 写好了,你看一下。UNPIVOT这个方法不是很好理解,得多试试。
目前我的办法是用游标,把每条数据取出来,然后用regexp_substr把要分割的数据单独转成另一个游标,2重循环
2条数据 1 AA,BB,CC 2 DD,EE 转成5条数据 1 AA ,1 BB, 1 CC 2 DD,2EE 怎么办?
0
with temp1 as (select 1 xx,  'aa' x1,'bb' x2,'cc' x3 from dual
union all
select 2, 'dd','ee',null from dual)
select xx, value from  temp1
UNPIVOT 
( value
        for value_type in
            ( x1,x2,x3 )) 

Oracle 11 测试通过

回复 : 有一个特别的参数 叫 LEVEL,不是你写的rownum
回复 : 是的,我找到的也是这个,上面说了这个函数
回复 : 我网上找到一个人写的, 把‘1,2,3’变成3行。 SELECT REGEXP_SUBSTR ('1,2,3', '[^,]+', 1,rownum) from dual connect by rownum<=LENGTH ('1,2,3') - LENGTH (regexp_replace('1,2,3', ',', ''))+1;
2个字段,1是id AA,BB,CC 是另一个字段
返回顶部
顶部