これを試して。文字列をパーツに分割します。
前編~This is a list:
第二部 -1.Test1 1.Test2 1.Test3
delimiter を使用して、 2 番目の部分を行に変換します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