last 函数 (XQuery)
返回当前正在处理的序列中的项数。具体来说,它返回序列中最后一项的整数索引。序列中第一项的索引值为 1。
语法
fn:last() as xs:integer
注释
在 SQL Server 中,fn:last() 只能用于与上下文相关的谓词的上下文中。特别要指出的是,它只能在方括号 ([ ]) 内使用。
示例
本主题提供了一些对 XML 实例的 XQuery 示例,这些实例存储在 AdventureWorks 数据库内不同的 xml 类型列中。有关这些列的概述,请参阅AdventureWorks 数据库中的 xml 数据类型表示形式。
A. 使用 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
在前面的查询中,//AWMI:root//AWMI:Location)[1]/AWMI:step[last()] 中的 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>