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
Notas
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 consultas XQuery con instancias XML almacenadas en varias columnas de tipo xml en la base de datos AdventureWorks. Para obtener información general de cada una de estas columnas, consulte Representación de tipo de datos xml en la base de datos AdventureWorks.
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.
El resultado es el siguiente:
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>