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'使用逗号隔开,并转换为列

posted @ 2017-06-21 10:24  又是我  阅读(474)  评论(0编辑  收藏  举报