【发布时间】:2014-07-23 10:19:37
【问题描述】:
我的数据库中有一个名为 MessageContent 的 xml 列:
<ns1:ProductAvailabilityPublication xmlns:ns0="http://www.example.com/Ecommerce/Worldwide/AvailabilityService/Schemas/ProductResponse" xmlns:ns2="http://www.example.com/Ecommerce/Worldwide/AvailabilityService/Schemas/ProductRequest" xmlns:ns1="http://www.example.com/Ecommerce/Worldwide/AvailabilityService/Schemas/ProductAvailabilityPublish" RequestorID="WCS_AU" BatchID="36dae836-cc16-489c-8009-afab63f92dff">
<ns0:ProductResponse ProductNumber="C8010A" LeadTime="1" LastUpdated="2014-07-18T11:17:47.677" Region="AP" CountryCode="AU" CurrInv="259" FutureInv="0" CurrEDD="TBA" FutureEDD="TBA" ETA="0" D-Flag="True">
<ns0:ProductType>
<ns2:NonStartingPoint />
</ns0:ProductType>
<ns0:Status>
<ns0:Success />
</ns0:Status>
</ns0:ProductResponse>
<ns0:ProductResponse ProductNumber="Q3655A" LeadTime="1" LastUpdated="2014-07-18T11:17:47.677" Region="AP" CountryCode="AU" CurrInv="2" FutureInv="0" CurrEDD="TBA" FutureEDD="TBA" ETA="0" D-Flag="True">
<ns0:ProductType>
<ns2:NonStartingPoint />
</ns0:ProductType>
<ns0:Status>
<ns0:Success />
</ns0:Status>
</ns0:ProductResponse>
<ns0:ProductResponse ProductNumber="PP654A" LeadTime="21" LastUpdated="2014-07-18T11:17:47.677" Region="AP" CountryCode="AU" CurrInv="0" FutureInv="0" CurrEDD="TBA" FutureEDD="TBA" ETA="0" D-Flag="False">
<ns0:ProductType>
<ns2:NonStartingPoint />
</ns0:ProductType>
<ns0:Status>
<ns0:Success />
</ns0:Status>
</ns0:ProductResponse>
</ns1:ProductAvailabilityPublication>
现在我想找出 "CurrInv">0 和 "D-flag"="True" 记录中的所有 "ProductNumber"。我试过了,但只能找出包含不需要数据的整个 xml 列。能不能算出所有的“ProductNumber”来满足我的表达方式?
【问题讨论】:
-
人们应该如何知道您所说的 ProductNumber、CurrInv 和 D-flag 的位置?发布示例 XML 并根据该示例进行解释,以使您的问题易于理解。
-
对不起,我不知道如何在代码中添加换行符,因为我添加了代码降价,但根本没有任何换行符。
-
您最好只发布 XML,使用
{}工具缩进 4 个空格。
标签: xml xquery-sql