oracle将查询结果横转纵

SELECT '残疾人|民政|综合治理|计划生育|物业监管|安全生产|环境类|司法信访|党建|社会组织|文化体育|社保' D , 
'53|52|51|50|49|48|47|5|4|3|2|1' g FROM dual

查询结果如下:

现在我想要把这个结果变成

残疾人 53
民政 52
综合治理 51
计划生育 50
物业监管 49
安全生产 48
环境类 47
司法信访 5
党建 4
社会组织 3
文化体育 2
社保 1

SELECT * FROM (
SELECT REGEXP_SUBSTR(E.D, '[^|]+',1, ROWNUM) BRAND , REGEXP_SUBSTR(E.g, '[^|]+',1, ROWNUM) BRAND1 FROM
(SELECT '残疾人|民政|综合治理|计划生育|物业监管|安全生产|环境类|司法信访|党建|社会组织|文化体育|社保' D , 
'53|52|51|50|49|48|47|5|4|3|2|1' g FROM dual)E
CONNECT BY ROWNUM <= "LENGTH"("REGEXP_REPLACE"(E.D, '|', ''))
)WHERE BRAND IS NOT NULL AND BRAND1 IS NOT NULL

 这样就把行拆分开了。

 

posted @ 2017-04-01 11:04  四十四次日落  Views(1953)  Comments(0Edit  收藏  举报