0

我们有一段时间编译的日志/审计,我们希望在上面运行一些简短的报告。

日志中的一列是 JSON,但包含 XML。我们希望能够为每一行解析出某个 XML 标记的值。所以给定一个任意字符串,如下所示:

{ "XmlData" :"<tag1><tag2><TagToParse>234</TagToParse></tag2><tag1>".....}

我想运行一个 sql 查询,当我给它提供标签名称TagToParse时返回 234

在 SQL 中完全做到这一点的最简单方法是什么?

4

1 回答 1

0

给您的容器将始终是 tag1,然后应该这样做:

DECLARE @MyXML XML
SET @MyXML = '<tag1><tag2><TagToParse>234</TagToParse></tag2></tag1>'

SELECT
 a.b.value('(/tag1//TagToParse/node())[1]', 'nvarchar(max)') AS Tag
FROM @MyXML.nodes('tag1') a(b)

祝你好运。

于 2013-01-22T18:52:01.537 回答