【发布时间】:2019-04-20 01:44:28
【问题描述】:
我有以下 XML 存储在 SQL Server 2012 表的 xml 列中。
<Values>
<V ID="MyValue1" Value="True" />
<V ID="MyValue2" Value="False" />
</Values>
我正在尝试从 ID 为“MyValue1”的节点获取Value 作为 XML 中的布尔值。经过一番搜索和一些 SQL xml 错误,我最终得到了这个:
SELECT ID, [Values],
[Values].value('data(/Values/V[@ID="MyValue1"]/@Value)[1]', 'bit') AS MyBool
FROM [MyXmlValues]
这似乎有点疯狂。有没有更简单的方法(例如没有数据部分)通过 XPath 查询单个值?
StackOverflow 上的大多数问题和示例都使用 [1] 来指示节点,但我不能确定我的节点是 XML 中预期的第一个节点。
【问题讨论】:
-
不,没有“捷径”或任何可以做到这一点的方法——这是“进入”XML 结构并提取单个节点值的方式
标签: sql-server xml sql-server-2012