上下文函数 - last (XQuery)

适用于:SQL Server

返回当前处理的序列中的项数。 具体来说,它返回序列中最后一项的整数索引。 序列中第一项的索引值为 1。

语法

  
fn:last() as xs:integer  

备注

在 SQL Server 中,fn:last () 只能在依赖于上下文的谓词的上下文中使用。 特别要指出的是,它只能在方括号 ([ ]) 内使用。

示例

本主题提供针对存储在 AdventureWorks 数据库中各种 xml 类型列中的 XML 实例的 XQuery 示例。

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>  

另请参阅

针对 xml 数据类型的 XQuery 函数