提取XML节点数据SQL查询

时间:2015-09-18 04:32:16

标签: sql-server xml

我正在尝试从SQL查询中提取XML节点。我在SQL表的一列中有XML报告规范。

我想使用SQL查询从XML中提取sqlText节点。

我已将xml上传到dropbox:
https://www.dropbox.com/sh/28xu7ifu78h6gm0/AACQS24NEjPFO0GXEI9vLuefa?dl=0

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:0)

如果您使用的是xml文档

declare @xml xml ='<report ....</report>'
select @xml.value('(/report/queries/query/source/sqlQuery/sqlText)[1]', 'varchar(100)') as [SqlText]

答案 1 :(得分:0)

假设XML数据存储在名为myXmlColumn的SQL表中名为myTable的XML类型列中,您可以使用;WITH XMLNAMESPACES()为XPath指定默认命名空间,例如:< / p>

;WITH XMLNAMESPACES(default 'http://developer.cognos.com/schemas/report/8.0/')
select myTable.myXmlColumn.value('(/report/queries/query/source/sqlQuery/sqlText)[1]'
                                 , 'varchar(max)') as sqlText

答案 2 :(得分:0)

如果有多个sqlQuery节点,则可以使用以下SQL XML query

SELECT
  [Query].value('.','varchar(100)') AS QueryText
FROM @xml.nodes('/report/queries/query/source/sqlQuery/sqlText') Queries([Query])