次の方法で共有


コンテキスト関数 - last (XQuery)

適用対象:SQL Server

現在処理中のシーケンス内のアイテム数を返します。 具体的には、シーケンス内の最後のアイテムの整数インデックスを返します。 シーケンスの最初の項目のインデックス値は 1 です。

構文

  
fn:last() as xs:integer  

解説

SQL Serverでは、fn:last() はコンテキスト依存述語のコンテキストでのみ使用できます。 具体的には、角かっこ ([ ]) 内でのみ使用できます。

使用例

このトピックでは、AdventureWorks データベースのさまざまな xml 型列に格納されている XML インスタンスに対する XQuery の例を示します。

A. last() XQuery 関数を使用して、最後の 2 つの製造手順を取得する

次のクエリでは、特定の製品モデルの最後の 2 つの製造手順を取得します。 このクエリでは、 last() 関数によって返される値 (製造ステップの数) を使用して、最後の 2 つの製造ステップを取得します。

SELECT ProductModelID, Instructions.query('   
declare namespace AWMI="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";  
  <LastTwoManuSteps>  
   <Last-1Step>   
     { (/AWMI:root/AWMI:Location)[1]/AWMI:step[(last()-1)]/text() }  
   </Last-1Step>  
   <LastStep>   
     { (/AWMI:root/AWMI:Location)[1]/AWMI:step[last()]/text() }  
   </LastStep>  
  </LastTwoManuSteps>  
') as Result  
FROM Production.ProductModel  
WHERE ProductModelID=7  

前のクエリでは、 //AWMI:root//AWMI:Location)[1]/AWMI:step[last()]last() 関数は製造ステップの数を返します。 この値は、ワーク センターの場所で最後の製造ステップを取得するために使用されます。

結果を次に示します。

ProductModelID Result    
-------------- -------------------------------------  
7      <LastTwoManuSteps>  
         <Last-1Step>  
            When finished, inspect the forms for defects per   
            Inspection Specification .  
         </Last-1Step>  
         <LastStep>Remove the frames from the tool and place them   
            in the Completed or Rejected bin as appropriate.  
         </LastStep>  
       </LastTwoManuSteps>  

参照

xml データ型に対する XQuery 関数