📌  相关文章
📜  如何从 SQL Server 中的任何表中查找最后一个值

📅  最后修改于: 2022-05-13 01:55:31.706000             🧑  作者: Mango

如何从 SQL Server 中的任何表中查找最后一个值

我们可以在 SQL Server 中使用 LAST_VALUE() 来查找任何表中的最后一个值。 SQL Server 中使用的LAST_VALUE()函数是一种窗口函数,它生成给定数据集的有序分区中的最后一个值。

句法 :

SELECT *,
FROM tablename
LAST_VALUE ( scalar_value )  
OVER (  
  [PARTITION BY partition_expression ]
  ORDER BY sort_expression [ASC | DESC]
) 
AS columname ; 

其中术语说明如下。
标量值 –
scalar_value 是针对给定数据集的有序分区中最后一行的值进行分析的值。

分区方式 –
PARTITION BY 子句是可选的,它将给定数据集的行区分为使用 LAST_VALUE()函数的分区。

订购者 –
ORDER BY 子句定义每个分区中使用 LAST_VALUE()函数的行的顺序。

示例-1:
假设我们有一个名为“geekdemo”的表;

SELECT Name, City, Year
FROM [geekdemo] ;
NameCityYear
AnkitDelhi2019
BabitaNoida2017
ChetanNoida2018
DeepakDelhi2018
IshaDelhi2019
KhushiNoida2019
MeghaNoida2017
ParulNoida2017

示例 2 :
LAST_VALUE() 没有 PARTITION BY 子句:

SELECT TOP 1000 Name, 
Year, LAST_VALUE(City) 
OVER 
(ORDER BY City ASC ) AS Last_City
FROM geekdemo;

输出 :

NameYearLast_City
Deepak2018Delhi
Isha2019Delhi
Ankit2019Delhi
Babita2017Noida
Chetan2018Noida
Khushi2019Noida
Megha2017Noida
Parul2017Noida

示例 3 :
LAST_VALUE() 与 PARTITION BY 子句:

SELECT Name, 
Year, 
LAST_VALUE(City) OVER 
(PARTITION BY Year
ORDER BY City ASC) AS Last_City
FROM geekdemo;

输出 :

NameYearLast_City
Babita2017Noida
Megha2017Noida
Parul2017Noida
Deepak2018Delhi
Chetan2018Noida
Isha2019Delhi
Ankit2019Delhi
Khushi2019Noida