转换前:
转换后:
转换sql:
with t as
(select '长港路五巷' 地址,'1号' 门牌号,'建苑大厦' 小区,'马武爽' 户主,'121231' 户主身份证号, '张三123 李四3323 王五1212' 人员信息 from dualunion all
select '长港路六巷' 地址,'2号' 门牌号,'长龙苑' 小区, '张大奎' 户主,'12121' 户主身份证号, '马武123 刘贵撒3323 顺丰1212' 人员信息 from dual
)
select 地址,门牌号,小区,人数,'非' 关系,substr(人员信息,0,instr(translate(人员信息,'0123456789','0000000000'),'0')-1) 姓名,
substr(人员信息,instr(translate(人员信息,'0123456789','0000000000'),'0')) 身份证号
from
(select distinct 地址,门牌号,小区,level+1 人数,level,regexp_substr(人员信息,'[^ ]+',1,level) 人员信息
from t
connect BY level<=length(人员信息)-length(replace(人员信息,' ',''))+1
order by 地址,门牌号,小区,level)
union all
select 地址,门牌号,小区,1 人数,'户主' 关系,户主 姓名,户主身份证号 身份证号 from t
order by 地址,门牌号,小区,人数