Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在XML文件中选择多个值,并用xQuery连接它们_Sql_Xml_Select_Concatenation_Xquery - Fatal编程技术网

Sql 在XML文件中选择多个值,并用xQuery连接它们

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

我有以下XML:

<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, '.')