Bağlam Fonksiyonları - son (XQuery)

Şunlar için geçerlidir: SQL Server

Şu anda işlenen dizi içindeki öğe sayısını döndürür. Özellikle, dizisindeki son öğenin tam sayı indeksini döndürür. Dizinin ilk maddesinin indeks değeri 1'dir.

Syntax

  
fn:last() as xs:integer  

Remarks

SQL Server'da, fn:last() yalnızca bağlama bağlı bir önlem bağlamında kullanılabilir. Özellikle, yalnızca köşeli ayraç içinde kullanılabilir ([ ] ).

Examples

Bu konu, AdventureWorks veritabanındaki çeşitli xml türü sütunlarında depolanan XML örneklerine karşı XQuery örnekleri sağlar.

A. Son iki üretim adımını almak için son () XQuery fonksiyonunu kullanarak

Aşağıdaki sorgu, belirli bir ürün modeli için son iki üretim adımını alır. Bu sorguda son iki üretim adımını almak için son() fonksiyonunun döndürülen üretim adımlarının sayısı olan değer kullanılır.

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  

Önceki sorguda, //AWMI:root//AWMI:Location)[1]/AWMI:step[last()]'deki last() fonksiyonu üretim adımlarının sayısını döndürür. Bu değer, iş merkezi konumundaki son üretim adımını almak için kullanılır.

Sonuç şu şekildedir:

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>