我有以下XML:
<items>
<item value="1"/>
<item value="2"/>
<item value="4"/>
</items>
我想选择所有项目值并将它们连接起来 - 见下文 - 使用XQuery:
1.2.4
有什么想法吗? 提前谢谢。
答案 0 :(得分:1)
您的问题分为两部分:
问题的第二部分在this question.
的答案中得到了很好的解决在从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小提琴中,您可以在此处访问和播放:http://sqlfiddle.com/#!6/d41d8/18144/0
答案 1 :(得分:1)
使用XQuery,您只需使用XPath选择值,然后使用点将它们连接在一起。
string-join(/items/item/@value, '.')