Sql 循环XML以返回所有节点

Sql 循环XML以返回所有节点,sql,xml,tsql,nodes,Sql,Xml,Tsql,Nodes,我有以下xml <ListOrderItemsResult> <OrderItems> <OrderItem> <OrderItemId>01691605007219</OrderItemId> <GiftWrapPrice> <Amount>0.00</Amount> <CurrencyCode>GBP</Curr

我有以下xml

<ListOrderItemsResult>
  <OrderItems>
    <OrderItem>
      <OrderItemId>01691605007219</OrderItemId>
      <GiftWrapPrice>
        <Amount>0.00</Amount>
        <CurrencyCode>GBP</CurrencyCode>
      </GiftWrapPrice>
      <QuantityOrdered>1</QuantityOrdered>
      <GiftWrapTax>
        <Amount>0.00</Amount>
        <CurrencyCode>GBP</CurrencyCode>
      </GiftWrapTax>
      <SellerSKU>WB0812005-2</SellerSKU>
      <Title>Solid Oak Silk Lined Wooden Gift Box for Whisky, Wine and Champagne (2 Pack)</Title>
      <ShippingTax>
        <Amount>0.00</Amount>
        <CurrencyCode>GBP</CurrencyCode>
      </ShippingTax>
      <ShippingPrice>
        <Amount>0.99</Amount>
        <CurrencyCode>GBP</CurrencyCode>
      </ShippingPrice>
      <ItemTax>
        <Amount>0.00</Amount>
        <CurrencyCode>GBP</CurrencyCode>
      </ItemTax>
      <ItemPrice>
        <Amount>43.99</Amount>
        <CurrencyCode>GBP</CurrencyCode>
      </ItemPrice>
      <PromotionDiscount>
        <Amount>0.00</Amount>
        <CurrencyCode>GBP</CurrencyCode>
      </PromotionDiscount>
      <ASIN>B00911O3IY</ASIN>
      <ConditionId>New</ConditionId>
      <QuantityShipped>1</QuantityShipped>
      <ConditionSubtypeId>New</ConditionSubtypeId>
      <ConditionNote>Free Postage and Packaging / Brand New / Original Packaging / Dispatched from UK Warehouse by Royal Mail or Parcelforce</ConditionNote>
      <ShippingDiscount>
        <Amount>0.00</Amount>
        <CurrencyCode>GBP</CurrencyCode>
      </ShippingDiscount>
    </OrderItem>
    <OrderItem>
      <OrderItemId>14086955545403</OrderItemId>
      <GiftWrapPrice>
        <Amount>0.00</Amount>
        <CurrencyCode>GBP</CurrencyCode>
      </GiftWrapPrice>
      <QuantityOrdered>1</QuantityOrdered>
      <GiftWrapTax>
        <Amount>0.00</Amount>
        <CurrencyCode>GBP</CurrencyCode>
      </GiftWrapTax>
      <SellerSKU>WB0812005-2</SellerSKU>
      <Title>Solid Oak Silk Lined Wooden Gift Box for Whisky, Wine and Champagne (2 Pack)</Title>
      <ShippingTax>
        <Amount>0.00</Amount>
        <CurrencyCode>GBP</CurrencyCode>
      </ShippingTax>
      <ShippingPrice>
        <Amount>1.00</Amount>
        <CurrencyCode>GBP</CurrencyCode>
      </ShippingPrice>
      <ItemTax>
        <Amount>0.00</Amount>
        <CurrencyCode>GBP</CurrencyCode>
      </ItemTax>
      <ItemPrice>
        <Amount>43.99</Amount>
        <CurrencyCode>GBP</CurrencyCode>
      </ItemPrice>
      <PromotionDiscount>
        <Amount>0.00</Amount>
        <CurrencyCode>GBP</CurrencyCode>
      </PromotionDiscount>
      <ASIN>B00911O3IY</ASIN>
      <ConditionId>New</ConditionId>
      <QuantityShipped>1</QuantityShipped>
      <ConditionSubtypeId>New</ConditionSubtypeId>
      <ConditionNote>Free Postage and Packaging / Brand New / Original Packaging / Dispatched from UK Warehouse by Royal Mail or Parcelforce</ConditionNote>
      <ShippingDiscount>
        <Amount>0.00</Amount>
        <CurrencyCode>GBP</CurrencyCode>
      </ShippingDiscount>
    </OrderItem>
    <OrderItem>
      <OrderItemId>15068544085995</OrderItemId>
      <GiftWrapPrice>
        <Amount>0.00</Amount>
        <CurrencyCode>GBP</CurrencyCode>
      </GiftWrapPrice>
      <QuantityOrdered>1</QuantityOrdered>
      <GiftWrapTax>
        <Amount>0.00</Amount>
        <CurrencyCode>GBP</CurrencyCode>
      </GiftWrapTax>
      <SellerSKU>WB0812005-2</SellerSKU>
      <Title>Solid Oak Silk Lined Wooden Gift Box for Whisky, Wine and Champagne (2 Pack)</Title>
      <ShippingTax>
        <Amount>0.00</Amount>
        <CurrencyCode>GBP</CurrencyCode>
      </ShippingTax>
      <ShippingPrice>
        <Amount>1.00</Amount>
        <CurrencyCode>GBP</CurrencyCode>
      </ShippingPrice>
      <ItemTax>
        <Amount>0.00</Amount>
        <CurrencyCode>GBP</CurrencyCode>
      </ItemTax>
      <ItemPrice>
        <Amount>43.99</Amount>
        <CurrencyCode>GBP</CurrencyCode>
      </ItemPrice>
      <PromotionDiscount>
        <Amount>0.00</Amount>
        <CurrencyCode>GBP</CurrencyCode>
      </PromotionDiscount>
      <ASIN>B00911O3IY</ASIN>
      <ConditionId>New</ConditionId>
      <QuantityShipped>1</QuantityShipped>
      <ConditionSubtypeId>New</ConditionSubtypeId>
      <ConditionNote>Free Postage and Packaging / Brand New / Original Packaging / Dispatched from UK Warehouse by Royal Mail or Parcelforce</ConditionNote>
      <ShippingDiscount>
        <Amount>0.00</Amount>
        <CurrencyCode>GBP</CurrencyCode>
      </ShippingDiscount>
    </OrderItem>
</ListOrderItemsResult>

任何人都可以提供一个将返回所有项(即XML中的3项)的解决方案。我知道它与[1]实例有关,但无法确定如何返回所有项目。

是否尝试删除[1]?是的。这将生成以下错误:XQuery[value]:“value”需要单例或空序列,找到的操作数类型为“xdt:untypedAtomic*”
SELECT  doc.value('./OrderItemId[1]/text()[1]','nvarchar(255)') AS 'OrderItemId',
        doc.value('./QuantityOrdered[1]/text()[1]', 'int') AS 'QuantityOrdered' 
FROM    @xml.nodes('/ListOrderItemsResult/OrderItems/*') AS ref ( doc )
SELECT  doc.value('./OrderItemId[1]/text()[1]','nvarchar(255)') AS 'OrderItemId',
        doc.value('./QuantityOrdered[1]/text()[1]', 'int') AS 'QuantityOrdered' 
FROM    @xml.nodes('/ListOrderItemsResult/OrderItems/*') AS ref ( doc )