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',',')

效果:

 

原文地址:https://www.cnblogs.com/luomingui/p/12575804.html