关于如何从xml列中的根节点检索值的Sql查询

关于如何从xml列中的根节点检索值的Sql查询,sql,xml,Sql,Xml,我不熟悉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.DownloadOr

我不熟悉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>
 .................

.................
我想在
mnt:type
中检索
值(“Aada.Core.Orders.DownloadOrder,Aada.Core”)
,但不确定如何为其编写查询


感谢您的帮助

您需要使用
@
来获取属性:

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)');
DECLARE@xxml='1〕
';
使用XMLNAMESPACES('http://namespaces.aada.be/4.0/maintenance“作为mnt)
选择@X.value('(/mnt:job/@mnt:type)[1],'nvarchar(max)';

您正在使用哪些数据库管理系统?神谕PostgreSQL?DB2?感谢Gareth的帮助,我尝试了这一点,并且成功了,但是感谢您的帮助,感谢您从[aada].[dbo].[TBLMaintenance JobHistory]中选择[Data].value('declare namespace x=“[1]),'nvarchar(max')