SQL server 2008 把一个字符串通过特殊字符进行切割成一个表通用函数

USE [wmsa]
GO
/****** Object:  UserDefinedFunction [dbo].[f_SplitString]    Script Date: 07/06/2018 15:04:40 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER FUNCTION [dbo].[f_SplitString]
(
	@AString	VARCHAR(8000),	--待分拆的字符串
	@Split		VARCHAR(10)	--数据分隔符
)
	RETURNS @RetTable TABLE(ACol VARCHAR(100))
AS
BEGIN
	DECLARE @iLen INT

	SET @AString = ISNULL(@AString, '')
	SET @iLen = LEN(@Split + 'a') - 2

	WHILE CHARINDEX(@Split, @AString) > 0
	BEGIN
		INSERT @RetTable VALUES(LEFT(@AString, CHARINDEX(@Split, @AString) - 1))
		SET @AString = STUFF(@AString, 1, CHARINDEX(@Split, @AString) + @iLen, '')
	END

	INSERT @RetTable VALUES(@AString)

	RETURN
END

操作结果截图如下所示:


猜你喜欢

转载自blog.csdn.net/u013941991/article/details/80941328
今日推荐