如何在sql server 2008中将逗号分隔的字符串转换为表或数组而不使用dbo.split函数,因为系统不支持此函数?
例如字符串:’12,14,15’
将此更改为
*Table column*
12
14
15
Or array=[12,14,15]
我想最终将逗号分隔的字符串值插入到表中。
谢谢
dbo.split
可能是用户定义的函数,因此您需要定义它。否则你可以使用XML + CROSS APPLY
:
Demo
DECLARE @string NVARCHAR(100) = '12,14,15'
;WITH cte AS
(
SELECT
CAST('<XMLRoot><RowData>' + REPLACE(t.val,',','</RowData><RowData>') + '</RowData></XMLRoot>' AS XML) AS x
FROM (SELECT @string) AS t(val)
)
SELECT
m.n.value('.[1]','varchar(8000)')
FROM cte
CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)