Go to my github

MSSQL—字符串分离(Split函数)

        前面提到了记录合并,有了合并需求肯定也会有分离需求,说到字符串分离,大家肯定会想到SPLIT函数,这个在.NET,Java和JS中都有函数,很可惜在SQL SERVER中没有,我们只能自己来写这么一个函数。

SET QUOTED_IDENTIFIER ON
SET ANSI_NULLS ON
GO

CREATE FUNCTION [dbo].[Split]  
(
    @str    VARCHAR(1000),
    @split    VARCHAR(10)
)
RETURNS @TempTable table(COL VARCHAR(50))
WITH ENCRYPTION
AS  
BEGIN    
    DECLARE @splitlen int
    SET @splitlen=LEN(@split+'a')-2
    WHILE CHARINDEX(@split,@str)>0
    BEGIN
        INSERT @TempTable VALUES(LEFT(@str,CHARINDEX(@split,@str)-1))
        SET @str=STUFF(@str,1,CHARINDEX(@split,@str)+@splitlen,'')
    END
    INSERT @TempTable VALUES(@str)
    RETURN
END


GO

调用:

SELECT * FROM dbo.SPLIT(N'张三,李四,王五,钱六,赵七,Tom,Amy,Joe,Leo',',')

效果:

 

 

 

posted @ 2020-03-26 17:32  峡谷少爷  阅读(690)  评论(0编辑  收藏  举报