last (función de XQuery)

Devuelve el número de elementos de la secuencia que se está procesando. En concreto, devuelve el índice entero del último elemento de la secuencia. El primer elemento de la secuencia tiene un valor de índice de 1.

Sintaxis

fn:last() as xs:integer

Comentarios

En SQL Server, sólo se puede utilizar fn:last() en el contexto de un predicado dependiente del contexto. En concreto, sólo se puede utilizar entre corchetes ([ ]).

Ejemplos

En este tema se ofrecen ejemplos de XQuery con instancias XML almacenadas en varias columnas de tipo xml en la base de datos AdventureWorks2008R2. Para obtener información general de cada una de estas columnas, vea Representación de tipo de datos xml en la base de datos AdventureWorks2008R2.

A. Usar la función de XQuery last() para recuperar los dos últimos pasos de fabricación

La consulta siguiente recupera los dos últimos pasos de fabricación de un modelo de producto determinado. Este valor devuelto por la función last(), que equivale al número de pasos de fabricación, se utiliza en esta consulta para recuperar los dos últimos pasos de fabricación.

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;

En la consulta anterior, la función last() de //AWMI:root//AWMI:Location)[1]/AWMI:step[last()] devuelve el número de pasos de fabricación. Este valor se utiliza para recuperar el último paso de fabricación de la ubicación de centro de trabajo.

Este es el resultado:

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>