我正在用 SQL 编写一个查询来组合几个数据表,并得到一个以 XML 格式存储的数据,格式如下:
<CustomDetails xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Fields>
<Field>
<Name>Selected City</Name>
<Value>Central</Value>
</Field>
<Field>
<Name>Address Provided</Name>
<Value>New Address</Value>
</Field>
</Fields>
</CustomDetails>
XML 存储在一个表中,我已经设法Address Provided
使用以下代码获取该字段
select
o.OrderID,
od.CustomDetails.query('data(/CustomDetails/Fields/Field[2]/Value)') as 'Address Provided'
from
dbo.[Order] o on
o.OrderID = s.OrderID
join
dbo.OrderData od on
od.OrderID = o.OrderID
我想知道是否有更好的方法来做到这一点,以及是否有办法保证我将获得地址提供字段,即使它首先出现或前面是否有其他字段。
希望一切都有意义,任何帮助表示赞赏。
谢谢