如何检索 MS SQL 中的最新记录?

How do I retrieve latest record in MS SQL?

假设我有一个名为 Students 的 table。

++++++++++++++++++++++++++++++++++++++++++++++++++++

id     name          course             date_admitted
1      Pankesh        EEE            2020-10-21 07:52:30.977
2      Pankesh        IT             2020-11-03 11:53:20.976
3      Pankesh        CE             2020-09-11 08:30:29.975

++++++++++++++++++++++++++++++++++++++++++++++++++++

我要检索的是最新记录

2      Pankesh        IT            2020-11-03 11:53:20.976

此实例的 SQL 查询语句是什么?

如果你只想要一行,你可以 order byfetch:

select s.*
from students s
order by date_admitted desc
offset 0 rows fetch first 1 row only

或使用top():

select top (1) s.*
from students s
order by date_admitted desc

另一方面,如果您想要每个学生 的最新行 ,那么它就是每个小组的前 1 名问题。您可以使用 window 函数:

select s.*
from (
    select s.*, 
        row_number() over(partition by name order by date_admitted desc) rn
    from students s
) t
where rn = 1