sql将逗号分隔的数据变成多行数据

效果
在这里插入图片描述
代码

SELECT * FROM excel_house_zz_nydqc_temp_data 
--将逗号分隔的数据变成多行数据
;with Roy as  
(select batch_guid,tsbh,fwz_zjlx=cast(left(fwz_zjlx,charindex(',',fwz_zjlx+',')-1) as nvarchar(100)),Split_1=cast(stuff(fwz_zjlx+',',1,charindex(',',fwz_zjlx+','),'') as nvarchar(100))
,fwz_zjhm=cast(left(fwz_zjhm,charindex(',',fwz_zjhm+',')-1) as nvarchar(100)),Split_2=cast(stuff(fwz_zjhm+',',1,charindex(',',fwz_zjhm+','),'') as nvarchar(100))
from excel_house_zz_nydqc_temp_data 
union all 
select batch_guid,tsbh,fwz_zjlx=cast(left(Split_1,charindex(',',Split_1)-1) as nvarchar(100)),Split_1= cast(stuff(Split_1,1,charindex(',',Split_1),'') as nvarchar(100))
,fwz_zjhm=cast(left(Split_2,charindex(',',Split_2)-1) as nvarchar(100)),Split_2= cast(stuff(Split_2,1,charindex(',',Split_2),'') as nvarchar(100))
from Roy where Split_1>'' 
)
SELECT  tsbh,fwz_zjlx,fwz_zjhm  from roy	temp INNER JOIN dbo.p_building_house p ON temp.tsbh=p.house_no  ORDER by tsbh option (MAXRECURSION 0)  

猜你喜欢

转载自blog.csdn.net/q1923408717/article/details/119671717