【问题标题】:SQL Server XQuery to select record if XML Column contains element with value如果 XML 列包含具有值的元素,SQL Server XQuery 将选择记录
【发布时间】:2014-07-24 07:05:35
【问题描述】:

我想从 Orders 表中选择记录。它包含 OrderXML 作为 XML 类型列。

如果 OrderXML 有用户给定状态的订单,那么它应该选择记录。 我正在尝试以下查询但不工作 -

SELECT * 
FROM   ORDER 
WHERE  ORDERXML.EXISTS('/Order/header/status/text()="Processing"') = 1 

【问题讨论】:

  • 我不明白是不是问题不清楚?为什么要投票并关闭?
  • 我没有否决你的 Q。我建议你点击我之前评论中的链接,我想你会在那里找到答案。
  • 分享的链接很有用。
  • 那你同意这篇文章是重复的吗?下次在发布 Q 之前尝试先进行一些搜索 :-)

标签: sql sql-server xml xquery xquery-sql


【解决方案1】:

您需要将谓词放在括号内,并且exist 需要小写。 XML 区分大小写,甚至 SQL Server 中的 XML 函数名也区分大小写。

select O.*
from [Order] as O
where O.OrderXML.exist('/Order/header/status[text() = "Processing"]') = 1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-26
    相关资源
    最近更新 更多