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',',')
效果: