Kontextfunktioner - sista (XQuery)

Gäller för:SQL Server

Returnerar antalet objekt i sekvensen som för närvarande bearbetas. Specifikt returnerar den heltalsindexet för det sista objektet i sekvensen. Det första objektet i sekvensen har ett indexvärde på 1.

Syntax

  
fn:last() as xs:integer  

Remarks

I SQL Server kan fn:last() endast användas i kontexten av ett kontextberoende predikat. Mer specifikt kan den bara användas inom hakparenteser ([ ]).

Examples

Det här avsnittet innehåller XQuery-exempel mot XML-instanser som lagras i olika XML- typkolumner i AdventureWorks-databasen.

A. Använd funktionen last() XQuery för att hämta de två sista tillverkningsstegen

Följande fråga hämtar de två sista tillverkningsstegen för en specifik produktmodell. Värdet, antalet tillverkningssteg, returnerat av last()- funktionen används i denna fråga för att hämta de två sista tillverkningsstegen.

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  

I föregående fråga returnerar last()- funktionen i //AWMI:root//AWMI:Location)[1]/AWMI:step[last()] antalet tillverkningssteg. Detta värde används för att hämta det sista tillverkningssteget vid arbetsplatsen.

Det här är resultatet:

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>