六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 34|回复: 0

oracle 列数据转成行

[复制链接]

升级  69.33%

38

主题

38

主题

38

主题

秀才

Rank: 2

积分
154
 楼主| 发表于 2013-1-26 12:54:17 | 显示全部楼层 |阅读模式
 在遇到一些字典表时出现这样的数据表:
 


 
想把它转成:


 那就不妨试试这个方法:
SELECT DISTINCT (SUBSTR(T.RPT_ID,                        INSTR(T.RPT_ID, ',', 1, C.LV) + 1,                        INSTR(T.RPT_ID, ',', 1, C.LV + 1) -                        (INSTR(T.RPT_ID, ',', 1, C.LV) + 1))) AS XZQH,                DLDM  FROM (SELECT ',' || XZQH || ',' RPT_ID,               LENGTH(XZQH || ',') - NVL(LENGTH(REPLACE(XZQH, ',')), 0) CNT,               DLDM          FROM TTABLE) T,       (SELECT LEVEL LV          FROM TTABLE        CONNECT BY LEVEL <=                   LENGTH(XZQH || ',') - NVL(LENGTH(REPLACE(XZQH, ',')), 0)) C WHERE T.CNT >= C.LV 
 
 
 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表