我不熟悉SQL中的XML查询,并且希望有人可以帮我查询如何检索类型值的SQL查询。
我有一个xml列数据,如下所示
<mnt:job xmlns:mnt="http://namespaces.aada.be/4.0/maintenance"
xmlns:order="http://namespaces.aadasoftware.net/4.4/maintenance/order"
mnt:version="1.0" mnt:type="Aada.Core.Orders.DownloadOrder, Aada.Core">
<mnt:targets>
<mnt:target mnt:id="bf321a20-8283-4760-a683-57892d8b9e12" mnt:status="Succeeded"
mnt:duration="00:00:00" mnt:message="" mnt:attempt="1">
<mnt:custom>
.................
我想检索value("Aada.Core.Orders.DownloadOrder, Aada.Core")
内的mnt:type
,但不确定如何为其编写查询。
感谢帮助
答案 0 :(得分:0)
您需要使用@
来获取属性:
DECLARE @X XML = '<mnt:job xmlns:mnt="http://namespaces.aada.be/4.0/maintenance"
xmlns:order="http://namespaces.aadasoftware.net/4.4/maintenance/order"
mnt:version="1.0" mnt:type="Aada.Core.Orders.DownloadOrder, Aada.Core">
<mnt:targets>
<mnt:target mnt:id="bf321a20-8283-4760-a683-57892d8b9e12" mnt:status="Succeeded"
mnt:duration="00:00:00" mnt:message="" mnt:attempt="1" />
</mnt:targets>
</mnt:job>';
WITH XMLNAMESPACES ('http://namespaces.aada.be/4.0/maintenance' AS mnt)
SELECT @X.value('(/mnt:job/@mnt:type)[1]', 'nvarchar(max)');