oracle將一個字段拆分成多個值 (regexp_substr函數)


select regexp_substr(p.attributename, '[^,]+',1,level) c1
from tablename p
connect by level <= length(p.attributename) - length(replace(p.attributename,',','')) + 1

 

--創建記錄表(包含數據記錄)
CREATE TABLE old_employee AS SELECT * FROM employee;

create table yyb_serv
(
SERV_CODE VARCHAR2(1024),
CMD_LIST VARCHAR2(100)
)

insert into yyb_serv values('111','1000,10001,10002')
select * from yyb_serv

----將一張表結構及表數據 插入到新表中  (數據結構及表數據都會同步)
create table old_yyb_serv AS (select * from yyb_serv)   

----將拆分的數據插入到表
insert into yyb_serv(SERV_CODE,CMD_LIST)
select SERV_CODE, regexp_substr(p.CMD_LIST, '[^,]+',1,level) c1
from yyb_serv p
connect by level <= length(p.CMD_LIST) - length(replace(p.CMD_LIST,',','')) + 1

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM