Sql 在XML文件中选择多个值,并用xQuery连接它们
我有以下XML:Sql 在XML文件中选择多个值,并用xQuery连接它们,sql,xml,select,concatenation,xquery,Sql,Xml,Select,Concatenation,Xquery,我有以下XML: <items> <item value="1"/> <item value="2"/> <item value="4"/> </items> 有什么想法吗? 提前感谢。您的问题分为两部分: 从xml中获取值 将多个值串联在一起 你问题的第二部分在你的回答中被很好地掩盖了 要从xml中获取值,请尝试以下方法: -- Your xml variable DECLARE @xml AS XML = '<ite
<items>
<item value="1"/>
<item value="2"/>
<item value="4"/>
</items>
有什么想法吗?
提前感谢。您的问题分为两部分: 从xml中获取值 将多个值串联在一起 你问题的第二部分在你的回答中被很好地掩盖了 要从xml中获取值,请尝试以下方法:
-- Your xml variable
DECLARE @xml AS XML = '<items>
<item value="1"/>
<item value="2"/>
<item value="4"/>
</items>'
-- Example of selecting the values into rows
SELECT
item.value('.', 'int')
FROM
@xml.nodes('/items/item/@value') as T1(item)
-- Use your favourite/'best for your circumstance' method of
-- concatenating the rows into one string
-- see https://stackoverflow.com/q/194852/1208914 for other ways
SELECT
item.value('.', 'varchar(50)') + ' ' as 'data()'
FROM
@xml.nodes('/items/item/@value') as T1(item)
for xml path('')
我已经将上面的代码放入了一个sql FIDLE中,您可以在这里访问和使用:使用XQuery,您只需使用XPath选择值,然后使用点将它们连接在一起
string-join(/items/item/@value, '.')
string-join(/items/item/@value, '.')