sqlserver 将一个字符串分隔成多行

将字符串分割成多行:

DECLARE @xx NVARCHAR(500);
SET @xx='''c5222f69-858f-49d6-885e-6173c231c052'',''c85d8c39-b2a2-4c33-84cf-8e03b6354cb7'',''c85d8c39-b2a2-4c33-84cf-8e03b6354cb7''';

create table #list (name varchar(1000));

insert into #list (name ) VALUES(@xx);

select b.number,substring(a.name, b.number, charindex(',', a.name + ',', b.number) - b.number) 
from #list a JOIN master..spt_values b on b.type = 'P'
where charindex(',', ',' + a.name, b.number) = b.number

--去掉前后空格
select b.number,REPLACE(SUBSTRING(a.id, b.number, CHARINDEX(',', a.id + ',', b.number) - b.number) ,'''','') 
from #list a JOIN master..spt_values b on b.type = 'P'
where charindex(',', ',' + a.name, b.number) = b.number

DROP TABLE #list

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/vaecnfeilong/article/details/125668920