You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL中如何利用ID列查询XML类型列获取对应ProductTitle?

从XML列中匹配ID提取对应节点文本的SQL解决方案

假设你的ProductDetails列的XML结构类似这样:

<products>
  <product key="1">Product1</product>
  <product key="2">Product2</product>
  <product key="3">Product3</product>
</products>

可以使用SQL Server的XML value()方法,结合sql:column()函数关联当前行的ID值,精准匹配对应key属性的product节点并提取文本:

SELECT 
    ID,
    ProductDetails,
    -- 匹配key属性等于当前行ID的product节点,提取其文本内容
    ProductDetails.value('(/products/product[@key=sql:column("ID")])[1]', 'nvarchar(100)') AS ProductTitle
FROM Products;

关键说明:

  • sql:column("ID"):将当前行的ID列值注入到XPath表达式中,实现动态匹配,避免硬编码和SQL注入风险
  • [1]:确保只返回第一个匹配的节点(若存在多个相同key的节点,取第一个结果)
  • nvarchar(100):指定提取文本的数据类型和长度,可根据实际产品名称的长度调整

比如当ID=3时,查询返回的ProductTitle字段值就是Product3,完全符合需求。

内容的提问来源于stack exchange,提问作者spgk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 12:35:19