尝试这个。把绳子分成几部分。
第一部分 -This is a list:
第二部分 -1.Test1 1.Test2 1.Test3
使用分隔符将第二部分转换为行Space
。然后添加row_number
到行。追加row_number
和 列数据。
最后将不同的行转换为由分隔的单行space
并将其附加到first part
DECLARE @NOTE VARCHAR(max) = 'This is a list: 1.Test1 1.Test2 1.Test3',
@temp VARCHAR(max),
@output VARCHAR(max)
SELECT @temp = Substring(@NOTE, Charindex(':', @NOTE) + 2, Len(@note))
SELECT @output = LEFT(@NOTE, Charindex(':', @NOTE) + 1)
SELECT @output += CONVERT(VARCHAR(10), Row_number() OVER (ORDER BY col))
+ Substring(col, Charindex('.', col), Len(col))
+ ' '
FROM (SELECT Split.a.value('.', 'VARCHAR(100)') col
FROM (SELECT Cast ('<M>' + Replace(@temp, ' ', '</M><M>') + '</M>' AS XML) AS Data) AS A
CROSS APPLY Data.nodes ('/M') AS Split(a)) ou
SELECT @output -- This is a list: 1.Test1 2.Test2 3.Test3