oracle字符串转成行
Oracle 字符串
2023-06-13 09:14:10 时间
SELECT 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))
ASRPT_ID
FROM (SELECT","||"85,86,87"||","RPT_ID,
LENGTH("85,86,87"||",")-NVL(LENGTH(REPLACE("85,86",",")),0)CNT
FROMDUAL)t,
(SELECTLEVELlv
FROMDUAL
CONNECTBYLEVEL<=LENGTH("85,86,87"||",")-NVL(LENGTH(REPLACE("85,86,87",",")),0))c
WHERE T.cnt>=c.lv
说明:CNT表示串里面有多少字符。
当是字符串是表中的字段时,取level<=最大个数
如:
1).取最大个数
SELECTMAX(LENGTH(RPT_ID||",")-
NVL(LENGTH(REPLACE(RPT_ID,",")),0))INTOv_c
FROMDIM_AUDIT_TABLE@sjmh_inter;
2).l转成行
SELECTT.T_NAME,
T.T_NAME_COMM,
T.T_COLUMN,
T.T_COLUMN_COMM,
t.COMMENT_NL,
t.COMMENT_NL_TIME,
t.SEQ_USER_ID,
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))ASRPT_ID
FROM(SELECTA.T_NAME,
A.T_NAME_COMM,
A.T_COLUMN,
A.T_COLUMN_COMM,
a.COMMENT_NL,
a.COMMENT_NL_TIME,
a.SEQ_USER_ID,
"",""||A.RPT_ID||"",""RPT_ID,
LENGTH(A.RPT_ID||"","")-
NVL(LENGTH(REPLACE(A.RPT_ID,"","")),0)CNT
FROMDIM_AUDIT_TABLE@sjmh_interA
WHEREa.COMMENT_NLisnotnull)T,
(SELECTLEVELLVFROMDUALCONNECTBYLEVEL<="||v_c||")C
WHEREC.LV<=T.CNT;
INSTR(T.RPT_ID,",",1,C.LV)+1,
INSTR(T.RPT_ID,",",1,C.LV+1)-(INSTR(T.RPT_ID,",",1,C.LV)+1))
ASRPT_ID
FROM (SELECT","||"85,86,87"||","RPT_ID,
LENGTH("85,86,87"||",")-NVL(LENGTH(REPLACE("85,86",",")),0)CNT
FROMDUAL)t,
(SELECTLEVELlv
FROMDUAL
CONNECTBYLEVEL<=LENGTH("85,86,87"||",")-NVL(LENGTH(REPLACE("85,86,87",",")),0))c
WHERE T.cnt>=c.lv
说明:CNT表示串里面有多少字符。
当是字符串是表中的字段时,取level<=最大个数
如:
1).取最大个数
SELECTMAX(LENGTH(RPT_ID||",")-
NVL(LENGTH(REPLACE(RPT_ID,",")),0))INTOv_c
FROMDIM_AUDIT_TABLE@sjmh_inter;
2).l转成行
SELECTT.T_NAME,
T.T_NAME_COMM,
T.T_COLUMN,
T.T_COLUMN_COMM,
t.COMMENT_NL,
t.COMMENT_NL_TIME,
t.SEQ_USER_ID,
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))ASRPT_ID
FROM(SELECTA.T_NAME,
A.T_NAME_COMM,
A.T_COLUMN,
A.T_COLUMN_COMM,
a.COMMENT_NL,
a.COMMENT_NL_TIME,
a.SEQ_USER_ID,
"",""||A.RPT_ID||"",""RPT_ID,
LENGTH(A.RPT_ID||"","")-
NVL(LENGTH(REPLACE(A.RPT_ID,"","")),0)CNT
FROMDIM_AUDIT_TABLE@sjmh_interA
WHEREa.COMMENT_NLisnotnull)T,
(SELECTLEVELLVFROMDUALCONNECTBYLEVEL<="||v_c||")C
WHEREC.LV<=T.CNT;
相关文章
- 优化Oracle数据库查询时间(oracle查询时间)
- 探索Oracle PGA的查询能力(oraclepga查询)
- 深入浅出Oracle触发器类型介绍(oracle触发器类型)
- 消灭重复:使用Oracle删除重复字段(oracle删除重复字段)
- 使用 Oracle 分区视图提升数据库性能(oracle分区视图)
- Oracle高级视频教程:提升技能、实现梦想!(oracle高级视频教程)
- Oracle 输出收获无限惊喜(oracle出力)
- 灵活的Hooks操纵Oracle的新武器(hooks oracle)
- Oracle内连接解析两表之间的联系(oracle什么叫内连接)
- 利用Oracle实现多字段主键索引(oracle 主键多字段)
- Oracle数据库会不会遭遇死锁(oracle会死锁吗)
- Oracle代码优雅之道缩进篇(oracle代码缩进)
- Oracle中统计在职人数分析(oracle中查在职人数)
- 的行Oracle数据库中实现指定行范围查询的技巧(oracle中取指定范围)
- Oracle中取取前三条记录的简单方法(oracle中取前三记录)
- Oracle 9i 百度云安全可靠的软件下载之路(oracle 9i百度盘)