CREATE FUNCTION [dbo].[SqlServer_Split]
(@SourceSql NVARCHAR(MAX),@StrSeprate NVARCHAR(10))--@SourceSql:要截取的字符串,@StrSeprate:分隔符,例如:‘,’
RETURNS @temp TABLE(result NVARCHAR(100))
--实现split功能 的函数
AS
BEGIN
DECLARE @TempString NVARCHAR(50)= ''; --临时存放的字符串
WHILE ( CHARINDEX(',', @SourceSql) <> 0 )
BEGIN
SET @TempString = SUBSTRING(@SourceSql, 1,CHARINDEX(',', @SourceSql) - 1); --截取左边第一个逗号的值(不包括,)。
INSERT @temp
( result )
VALUES ( @TempString -- result - nvarchar(100)
); --把第一个逗号的左边插入临时表(不包括,)
SET @SourceSql = STUFF(@SourceSql, 1, CHARINDEX(',', @SourceSql),''); --把逗号左边的数据替代为''(这个替代包括,),取右边的数据重新赋值给@SourceSql
IF ( CHARINDEX(',', @SourceSql) = 0 )--
BEGIN
INSERT @temp
( result )
VALUES ( @SourceSql -- result - nvarchar(100)
);
RETURN;
END;
END;
RETURN;
END
GO
来源:CSDN
作者:帅气的任童鞋
链接:https://blog.csdn.net/qq_38103073/article/details/103477446