Função last (XQuery)
Retorna o número de itens na sequência que está sendo processada atualmente. Especificamente, retorna o índice de inteiro do último item na sequência. O primeiro item na sequência tem um valor de índice de 1.
Sintaxe
fn:last() as xs:integer
Comentários
No SQL Server, fn:last() pode ser usado somente no contexto de um predicado dependente de contexto. Mais precisamente, ele só pode ser usado entre parênteses ([ ]).
Exemplos
Este tópico fornece exemplos de XQuery em instâncias XML armazenadas em várias colunas do tipo xml no banco de dados AdventureWorks2008R2. Para obter uma visão geral de cada uma dessas colunas, consulte Representação de tipo de dados xml no banco de dados do AdventureWorks2008R2.
A. Uso da função last () XQuery para recuperar as últimas duas etapas de fabricação
A consulta a seguir recupera as duas últimas etapas do processo de fabricação de um modelo de produto específico. O valor, o número de etapas de fabricação, retornado pela função last() é usado nessa consulta para recuperar as duas últimas etapas de fabricação.
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;
Na consulta precedente, a função last() em //AWMI:root//AWMI:Location)[1]/AWMI:step[last()] retorna o número de etapas de fabricação. Esse valor é usado para recuperar a última etapa de fabricação no local do centro de trabalho.
Este é o resultado:
ProductModelID Result
-------------- -------------------------------------
7 <LastTwoManuSteps>
<Last-1Step>
Quando concluir, inspecione as formas em busca de defeitos por
Especificação de inspeção.
</Last-1Step>
<LastStep>Remova os quadros da ferramenta e coloque-os
no compartimento Concluído ou Rejeitado conforme apropriado.
</LastStep>
</LastTwoManuSteps>