SQL SERVER 拼接字符串转化为表结构数据
阅读原文时间:2023年08月19日阅读:3

本文为一些需要对特殊符号分隔的字符串进行解析,比如将

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 相关知识