Kontextové funkce – poslední (XQuery)
platí pro:SQL Server
Vrátí počet položek v posloupnosti, která se právě zpracovává. Konkrétně vrátí celočíselnou index poslední položky v sekvenci. První položka v sekvenci má hodnotu indexu 1.
Syntax
fn:last() as xs:integer
Poznámky
V SQL Serveru lze fn:last() použít pouze v kontextu predikátu závislého na kontextu. Konkrétně lze použít pouze vnitřní závorky ([ ]
).
Příklady
Toto téma obsahuje příklady XQuery pro instance XML, které jsou uloženy v různých xml sloupce typu v databázi AdventureWorks.
A. Načtení posledních dvou kroků výroby pomocí funkce last() XQuery
Následující dotaz načte poslední dva výrobní kroky pro konkrétní produktový model. Hodnota, počet výrobních kroků vrácených funkcí last(), se v tomto dotazu použije k načtení posledních dvou výrobních kroků.
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
V předchozím dotazu vrátí funkce last() v //AWMI:root//AWMI:Location)[1]/AWMI:step[last()]
počet výrobních kroků. Tato hodnota se používá k načtení posledního kroku výroby v umístění pracovního centra.
Toto je výsledek:
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>
Viz také
funkce XQuery proti datového typu XML