繁体   English   中英

T-SQL,从列中的 xml 获取值

[英]T-SQL, get value from xml in a column

我有一个带有 XML 列 (xmlCol) 的表,我正在尝试从中查询一个值。

这是 xml。

<criteria>
  <factor name="Rivers" title="Rivers">
    <value dataType="Int32" value="1743" description="Wilson0" />
  </factor>
  <factor name="OptionalAffProperties" title="Include properties">
    <value dataType="String" value="FishingModel" description="Fishing Model" />
  </factor>
</criteria>

这是获取列的 select。 来自 MyTable 的 select xmlCol

我试图将值 1743 返回到名为 RiverID 的列。

麦克风

这应该有效:

SELECT
    xmlCol.value('(//factor[@name="Rivers"]/value/@value)[1]', 'int') As RiverID
FROM
    MyTable

value() 方法(xml 数据类型)- SQL 服务器 | 微软文档
XQuery 语言参考 (SQL Server) - SQL 服务器 | 微软文档

要获取属性值,您可以像这样查询它:

select xmlCol.value('(/criteria/factor/value/@value)[1]', 'int') RiverID
from MyTable

您提供 xml 路径到您正在寻找的记录: (/criteria/factor/value

然后是您需要的属性: /@value)[1]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM