我正在尝试从SQL查询中提取XML节点。我在SQL表的一列中有XML报告规范。
我想使用SQL查询从XML中提取sqlText节点。
我已将xml上传到dropbox:
https://www.dropbox.com/sh/28xu7ifu78h6gm0/AACQS24NEjPFO0GXEI9vLuefa?dl=0
非常感谢任何帮助。
答案 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])