从多个原始数据中检索xml节点

时间:2014-03-10 10:30:02

标签: sql sql-server sql-server-2008

我在两个表上使用内连接撤回了一列:

SELECT Table_1.*, Table_2.c
FROM
Table_1
inner JOIN
Table_2 ON CHARINDEX(Table_2.a, Table_1.b) > 0 and Table_2.c=1
where Table_1.d like '%xxx...%'

上述查询中的一列是XML类型:

<column1>
---------
<XML1>
---------
<XML2>
---------
<XML3>
---------
.
.
.

1.我想从每个XML中检索一个字符串,并将其显示为查询中的附加列(所有xml结构都相同)? 谢谢。 让我们说XML如下:

<root>
 <row>
  <String>XXX...</String>
 </row>
</root>

1 个答案:

答案 0 :(得分:1)

好的,我假设你的表中的列包含以下格式的xml。

<root>
  <row>
    <value>1</value>
  </row>
</root>

然后检查以下查询。

SELECT  b.ID,
       x.XmlCol.value('value[1]', 'int') AS [NodeVal] 
FROM   YourTable b
CROSS APPLY b.ActualXmlCol.nodes('/root/row') x(XmlCol);