Поделиться через


Функции контекста — last (XQuery)

Применимо к:SQL Server

Возвращает количество элементов в обрабатываемой в данный момент последовательности. Точнее, эта функция возвращает целочисленный индекс последнего элемента в последовательности. Значение индекса первого элемента в последовательности — 1.

Синтаксис

  
fn:last() as xs:integer  

Замечания

В SQL Server fn:last() можно использовать только в контексте предиката, зависящей от контекста. Точнее, ее использование возможно только внутри квадратных скобок ([ ]).

Примеры

В этом разделе приведены примеры XQuery для экземпляров XML, хранящихся в различных столбцах типа XML в базе данных AdventureWorks.

О. Использование функции last() языка XQuery для получения последних двух этапов производства

Следующий запрос получает последние два этапа производства для определенной модели продукта. Значение, количество этапов производства, возвращаемых функцией last() используется в этом запросе для получения последних двух производственных шагов.

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  

В предыдущем запросе функция last() в //AWMI:root//AWMI:Location)[1]/AWMI:step[last()] возвращает количество шагов производства. Это значение используется для получения последнего этапа производства на участке цеха.

Результат:

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>  

См. также

Функции XQuery для типа данных XML