SqlServer教程

SQL Server 数据库字符串分割函数

本文主要是介绍SQL Server 数据库字符串分割函数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

SQL Server 数据库字符串分割函数,源代码如下:

ALTER FUNCTION [dbo].[f_split]
(	
	@SourceStr VARCHAR(MAX), -- 源字符串
	@SplitStr VARCHAR(100) -- 分割字符串
)
RETURNS @result TABLE (a VARCHAR(1000))
AS
BEGIN
	DECLARE @i INT
	SET @SourceStr = RTRIM(LTRIM(@SourceStr))
	SET @i = CHARINDEX(@SplitStr, @SourceStr)

	-- 循环处理字符串
	WHILE @i >= 1
	BEGIN
		-- 添加至结果数据表
		IF LEN(LEFT(@SourceStr, @i - 1)) > 0
		BEGIN
			INSERT INTO @result(a)
			VALUES (LEFT(@SourceStr, @i - 1))
		END

		-- 重新设置新数据
		SET @SourceStr = SUBSTRING(@SourceStr, @i + 1, LEN(@SourceStr)-@i)
		SET @i = CHARINDEX(@SplitStr, @SourceStr)

		-- 解决最后一个遗漏问题
		IF @i <= 0 AND LEN(@SourceStr) > 1
		BEGIN
			INSERT INTO @result(a)
			VALUES (@SourceStr)
		END
	END

	RETURN
END

调用方式:

DECLARE @SourceStr VARCHAR(MAX) = '+103+105+107-+3+'

SELECT *
FROM [MetaData].[dbo].f_split(@SourceStr, '+')

输出结果:

a
---
103
105
107-
3
这篇关于SQL Server 数据库字符串分割函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!