sql server 实现split功能 行转列
--實現split功能的函數
create function [dbo].[func_split](
@SourceSql varchar(max),
@StrSeprate varchar(10))
returns @temp table(a varchar(100)) --根據需要﹐可以改變定義長度
as
begin
declare @i int
set @SourceSql=rtrim(ltrim(@SourceSql))
set @i=charindex(@StrSeprate,@SourceSql)
while @i>=1
begin
insert @temp values(rtrim(ltrim(left(@SourceSql,@i-1))))
set @SourceSql=rtrim(substring(@SourceSql,@i+1,len(@SourceSql)-@i))
set @i=charindex(@StrSeprate,@SourceSql)
end
if @SourceSql<>'\'
insert @temp values(@SourceSql)
return
end
------调用实例:select * from [dbo].[func_split]('1,2,3,4,5',',') ---字符串'1,2,3,4,5'使用逗号隔开,并转换为列