Fork me on GitHub

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
View Code

@String是传入的字符串,@Delimiter是分隔的字符(单字符)如(‘,’,‘/’)等

 

能帮朋友解决问题的记得给个关注支持一下,以后将多多分享SQL SERVER 相关知识

posted @ 2022-06-10 15:33  酒笙匿清栀  阅读(214)  评论(0编辑  收藏  举报