SQL 分割函数

来源:互联网 发布:软件测试待遇怎么样 编辑:程序博客网 时间:2024/06/06 00:41
CREATE FUNCTION [dbo].[fnSplit](@String NVARCHAR(4000),@Delimiter NVARCHAR(10))RETURNS @ValueTable TABLE([value] NVARCHAR(128))ASBEGINDECLARE @Pos INTDECLARE @PrevPos INTSET @Pos = charindex(@Delimiter, @String)SET @PrevPos = 1WHILE (@Pos <> 0)BEGININSERT INTO @ValueTable ([Value]) VALUES (substring(@String, @PrevPos, @Pos - @PrevPos))SET @PrevPos = @Pos + len(@Delimiter)SET @Pos = charindex(@Delimiter, @String, @Pos + len(@Delimiter))ENDINSERT INTO @ValueTable ([Value]) VALUES (substring(@String, @PrevPos, len(@String)))RETURNENDGO