sql分隔字符串函数

ALTER FUNCTION [DB_Division].[FunSplitStr]
(
    @SourceSql VARCHAR (MAX),--原字符串
    @strSeprate VARCHAR (100)--分隔符
)
RETURNS @temp TABLE (id INT IDENTITY, col VARCHAR (8000))
AS
BEGIN
    DECLARE @ch AS VARCHAR(8000 )
    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 ),'') 
        --stuff (将给定字符串中的某一部分删除并插入指定的字符串 , 第一个参数是待操作的字符串 ; 第二个参数是要删除部分的起始位置 ; 第三个参数是要删除部分的长度 ; 第四个参数是要插入的字符串)
    END
    RETURN
END
SELECT * FROM DB_Division.FunSplitStr('12|15|22|34|43|44|46|52|53|54|63|83|35|36','|')

 

posted @ 2018-01-02 14:55  花生打代码会头痛  阅读(121)  评论(0)    收藏  举报