你可以讓你的正則表達式FUNC返回XML。而不是這個'text1d','text2','text3'
你可以建立這個<v>text1d</v><v>text2</v><v>text3</v>
。
下面是一個帶有模擬查詢的表變量的示例。
設置測試數據
declare @T table (txt varchar(50))
insert into @T values ('<v>text1d</v><v>text2</v><v>text3</v>')
insert into @T values ('<v>text3d</v><v>text2</v><v>text6</v>')
insert into @T values ('<v>text1d</v><v>text2</v><v>text6</v>')
insert into @T values ('<v>text18d</v><v>text2</v><v>tex3t</v>')
insert into @T values ('<v>text15</v><v>text2</v><v>text5</v>')
你查詢應該返回什麼現在是在@T
txt
<v>text1d</v><v>text2</v><v>text3</v>
<v>text3d</v><v>text2</v><v>text6</v>
<v>text1d</v><v>text2</v><v>text6</v>
<v>text18d</v><v>text2</v><v>tex3t</v>
<v>text15</v><v>text2</v><v>text5</v>
下面是用於查詢中的列@ T.txt的XML插入語句。
insert into Test1 (c1, c2, c3)
select
cast(txt as xml).value('v[1]', 'varchar(20)'),
cast(txt as xml).value('v[2]', 'varchar(20)'),
cast(txt as xml).value('v[3]', 'varchar(20)')
from @T
針對Test1的查詢會爲您提供此結果。
c1 c2 c3
text1d text2 text3
text3d text2 text6
text1d text2 text6
text18d text2 tex3t
text15 text2 text5
我想這也是這個問題的答案。 Insert into SQL server from Regular Expression returned text
你可以發佈你的`SELECT`語句,因爲它會使它更容易幫助。 – 2011-02-03 21:00:38