ALTER FUNCTION [DB_Division].[FunSplitStr]
(
@SourceSql VARCHAR (MAX),--原字符串
@strSeprate VARCHAR (100)--分隔符
)
RETURNS @temp TABLE (id INT IDENTITY, col VARCHAR (8000))
AS
BEGIN
DECLARE @ch AS VARCHAR(8000 )
SET @SourceSql =@SourceSql+ @StrSeprate
WHILE(@SourceSql <>'')
BEGIN
SET
@ch=LEFT(@SourceSql ,CHARINDEX( @strSeprate,@SourceSql ,1)- 1)
INSERT @temp VALUES( @ch)
SET @SourceSql=STUFF (@SourceSql, 1,CHARINDEX (@strSeprate, @SourceSql,1 ),'')
--stuff (将给定字符串中的某一部分删除并插入指定的字符串 , 第一个参数是待操作的字符串 ; 第二个参数是要删除部分的起始位置 ; 第三个参数是要删除部分的长度 ; 第四个参数是要插入的字符串)
END
RETURN
END
SELECT * FROM DB_Division.FunSplitStr('12|15|22|34|43|44|46|52|53|54|63|83|35|36','|')
![]()