字符串拆分

半雨微凉丶 半雨微凉丶 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
比如传入'4,401,1;4,402,2;4,403,3'等不定量的几条数据,(4,401,1)是一条记录
现在,存储过程里使用charindex、substring已经拆分了4,401,1 4,402,2 4,403,3
但是下边进行下一级拆分的时候有没有简单的方法,比如使用递归什么的
DECLARE @arr VARCHAR(128)
DECLARE @Tlist1 VARCHAR(64)
DECLARE @posStart INT
DECLARE @posCur INT
DECLARE @TID INT

SET @posStart = 1
SET @posCur = 1

SET @arr = '4,401,1;4,402,2;4,403,3;4,404,4'
SET @posCur = CHARINDEX(';',@arr,@posStart)
set @Tlist1=cast (SUBSTRING(@arr,@posStart ,@posCur-@posStart) as varchar(64))
PRINT @Tlist1
--二次拆分 4,401,1 拆分为4 401 1
SET @posStart = @posCur

WHILE (@posStart+1 < LEN(@arr))
Begin
Set @posCur=CharIndex( ';',@arr, @posStart+1)
if(@posCur> 0)
Begin
set @Tlist1=cast (SUBSTRING(@arr,@posStart+1 ,@posCur-@posStart-1) as varchar(64))
PRINT @Tlist1
--二次拆分
SET @posStart = @posCur
End
else
Break
End
set @Tlist1=cast (SUBSTRING(@arr,@posStart+1 ,LEN(@arr)-@posStart+1) as varchar(64))
PRINT @Tlist1
--二次拆分
...全文

相关推荐

评论 8
收藏 已收藏
分享
返回顶部
半雨微凉丶
MS-SQL Server 34,876 成员 254,635 内容