您好,我是小DAI,专注于数据库管理员相关的技术问答,请问有什么可以帮您?

LAST_VALUE 函数(集合)

返回表达式的最后一个元素的值。此函数也可以用作窗口函数。

语法

聚合函数:

LAST_VALUE(   )

窗口函数:

LAST_VALUE(   ) 

语法元素

指定要运算的数据的表达式。指定输入行的排序顺序。 ::= ORDER BY [, [,...] ] ::= [ ASC | DESC ] [ NULLS FIRST | NULLS LAST ] [ ] | [ ASC | DESC ] [ NULLS FIRST | NULLS LAST ] [ ] ::= COLLATE 指定用于排序结果中的值的归类。 只能用于定义为 NVARCHAR 或 VARCHAR 的列。 是 COLLATIONS 系统视图中列出的受支持归类名称之一。定义函数运行的数据窗口。对于 ,请参阅窗口函数和窗口规范。

描述

返回 中最后一个元素的值,按 排序。

如果值为 NULL 为空,则返回 NULL

LAST_VALUE 函数的输出在相持值之间可以是非确定性的。

示例

下表按 COL2 排序时,以下示例返回 COL1 列中的最后一个值。查询返回 4。

CREATE ROW TABLE T (COL1 DOUBLE, COL2 DOUBLE);

INSERT INTO T VALUES(1, 1);

INSERT INTO T VALUES(4, 5);

INSERT INTO T VALUES(7, 3);

SELECT LAST_VALUE (COL1 ORDER BY COL2) FROM T;

空间数据类型(ST_Geometry、ST_Point)的示例

下表按 ID 排序时,以下示例返回二进制格式的最后一个值 POINT (4 4):

CREATE TABLE TAB (ID INT, SHAPE ST_Geometry(4326));

INSERT INTO TAB VALUES(1, ST_GeomFromText('POINT(1 1)', 4326));

INSERT INTO TAB VALUES(2, ST_GeomFromText('POINT(2 2)', 4326));

INSERT INTO TAB VALUES(3, ST_GeomFromText('POINT(3 3)', 4326));

INSERT INTO TAB VALUES(4, ST_GeomFromText('POINT(4 4)', 4326));

SELECT LAST_VALUE(SHAPE ORDER BY ID) FROM TAB;

要将结果作为数据类型 NVARCHAR 返回,请使用以下语句:

SELECT LAST_VALUE(CAST(SHAPE AS NVARCHAR) ORDER BY ID) FROM TAB;