【问题标题】:Getting the data of Ancestor node + XQuery-Sql获取Ancestor节点的数据+XQuery-Sql
【发布时间】:2011-05-06 21:59:38
【问题描述】:

这就是我的 XML 的样子:

 <Product sequence_number="1" number="1543448904" id="S1" unit_number="1">

     <consumer_narrative name="GLENN,GREGORY" date_filed="02/13/2009">
        <message type="Consumer Comments">THE CONSUMER STATES THIS WAS  NOT </message>
        <message type="Consumer Comments">THE PRODUCT REQUESTED.</message>
     </consumer_narrative></Product> <Product sequence_number="2" number="1543448905" id="S1" unit_number="1">

     <consumer_narrative name="JOHN,GORDON" date_filed="08/23/2009">
        <message type="Consumer Comments">THE CONSUMER STATES THAT</message>
        <message type="Consumer Comments">WRONG PRODUCT WAS SENT.</message>
     </consumer_narrative>  </Product>

我的查询:

SELECT 

    tab.col.value('../@number', 'varchar(30)')   [Claim Number], 
    tab.col.value('../@name', 'varchar(30)')   [Name], 
    tab.col.value('../@date_filed', 'varchar(30)')   [DateField],
    tab.col.value('@type', 'varchar(50)')   [Type], 
    tab.col.value('.', 'varchar(250)')   [CustomerComments]

FROM XMLTABLE AS B
CROSS APPLY xmldocument.nodes('//Product/consumer_narrative/message') tab(col)
WHERE B.XMLId = 123

给我的索赔编号为“null”。我应该用什么代替 ../@number 以获得索赔编号。

【问题讨论】:

    标签: sql-server-2008 xquery-sql


    【解决方案1】:

    另一个“../”

    第一个 ../ 仅将您带到了 consumer_narrative 元素

    【讨论】:

    • @邓肯 非常感谢。这正是我想要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-20
    • 1970-01-01
    • 2012-09-23
    • 1970-01-01
    • 1970-01-01
    • 2013-06-18
    • 1970-01-01
    相关资源
    最近更新 更多