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


Функция last (XQuery)

Возвращает количество элементов в обрабатываемой в данный момент последовательности. Точнее, эта функция возвращает целочисленный индекс последнего элемента в последовательности. Значение индекса первого элемента в последовательности — 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