--方法一(用xml来拆分字符串)
Select id,type,name,app From
(
Select id,type, CAST( ''+REPLACE(name,',','')+'' as xml) As xml,app
From (select 1 As id,'A' As type,'张三,李四,王五' As name,0 As APP) S
) a outer apply ( Select x.y.value('.','varchar(100)') as name
From a.xml.nodes('/v') x(y)) b
--方法二(表值函数拆分字符串)
Create function f_split (@SourceSql varchar(8000),@StrSeprate varchar(2))
returns @temp table(col varchar(100))
as
begin
declare @ch as varchar(100)
set @SourceSql=@SourceSql+@StrSeprate
while(@SourceSql<>'')
begin
set @ch=left(@SourceSql,charindex(@StrSeprate,@SourceSql,1)-1)
insert @temp values(@ch)
set @SourceSql=stuff(@SourceSql,1,charindex(@StrSeprate,@SourceSql,1),'')
end
return
end
--调用
select 1 As id,'A' As Type,Col As name,0 As app
from dbo.f_split('张三,李四,王五',',')
