Partager via


Fonction last (XQuery)

Renvoie le nombre d'éléments de la séquence en cours de traitement. Renvoie plus précisément l'index entier du dernier élément de la séquence. Le premier élément de la séquence a une valeur d'index de 1.

Syntaxe

fn:last() as xs:integer

Notes

Dans SQL Server, la fonction fn:last() ne peut être utilisée que dans le cadre d'un prédicat contextuel. Autrement dit, elle ne peut être utilisée qu'à l'intérieur de crochets ([ ]).

Exemples

Cette rubrique propose des exemples de XQuery relatifs à des instances XML stockés dans différentes colonnes de type xml tirées de la base de données AdventureWorks2008R2. Pour obtenir une vue d'ensemble de chacune de ces colonnes, consultez Représentation du type de données xml dans la base de données AdventureWorks2008R2.

A. Utilisation de la fonction XQuery last() pour récupérer les deux dernières étapes de fabrication.

La requête suivante récupère les deux dernières étapes de fabrication d'un modèle de produit spécifique. La valeur (le nombre d'étapes), renvoyée par la fonction last() est utilisée dans cette requête pour récupérer les deux dernières étapes de fabrication.

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;

Dans la requête précédente, la fonction last() dans //AWMI:root//AWMI:Location)[1]/AWMI:step[last()] renvoie le nombre d'étapes de fabrication. Cette valeur permet de récupérer la dernière étape de fabrication sur ce poste de travail.

Voici le résultat obtenu :

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>