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)
)regexp

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

----將一張表結構及表數據 插入到新表中  (數據結構及表數據都會同步)
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,',','')) + 1table

相關文章
相關標籤/搜索