如果XML列包含具有值的元素,则SQL Server XQuery选择记录

时间:2014-07-24 07:05:36

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

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

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

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

1 个答案:

答案 0 :(得分:3)

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

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