SQL SERVER 拼接字符串转化为表结构数据
本文为一些需要对特殊符号分隔的字符串进行解析,比如将
select ‘10,20,30,40,50,60’
这个字符串转化为一列多行
下面提供源代码:
1 SET QUOTED_IDENTIFIER ON 2 SET ANSI_NULLS ON 3 GO 4 ALTER FUNCTION [dbo].[Split](@String VARCHAR(MAX), @Delimiter CHAR(1)) 5 RETURNS @temptable TABLE (items VARCHAR(8000)) 6 AS 7 BEGIN 8 DECLARE @idx INT 9 DECLARE @slice VARCHAR(8000) 10 SET @idx = 1 11 12 IF LEN(@String)<1 OR @String IS NULL 13 RETURN 14 15 WHILE @idx!= 0 16 BEGIN 17 SET @idx =CHARINDEX(@Delimiter,@String) 18 IF @idx!=0 19 SET @slice =LEFT(@String,@idx - 1) 20 ELSE 21 SET @slice = @String 22 IF(LEN(@slice)>0) 23 INSERT INTO @temptable(items)VALUES(@slice) 24 SET @String =RIGHT(@String,LEN(@String)- @idx) 25 IF LEN(@String)= 0 BREAK 26 END 27 28 RETURN 29 END 30 GO
@String是传入的字符串,@Delimiter是分隔的字符(单字符)如(‘,’,‘/’)等
能帮朋友解决问题的记得给个关注支持一下,以后将多多分享SQL SERVER 相关知识
本文来自博客园,作者:酒笙匿清栀,转载请注明原文链接:https://www.cnblogs.com/libo962464/p/16363425.html