如何检索 MS SQL 中的最新记录? [复制]

Posted

技术标签:

【中文标题】如何检索 MS SQL 中的最新记录? [复制]【英文标题】:How do I retrieve latest record in MS SQL? [duplicate] 【发布时间】:2021-02-19 00:25:07 【问题描述】:

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

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

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 BY, SELECT TOP 1 如果您有组在 CTE ROW_NUMBER() OVER(name order by date_admitted DESC) AS SEQ 内使用窗口函数,则从 cte where seq = 1 中选择 select top(1) * from Students order by date_admitted desc 【参考方案1】:

如果你只想要一行,你可以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 个问题。您可以使用窗口函数:

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

【讨论】:

我已经编辑了我的问题。请看一看。 @TechGeek49:这似乎符合您的要求。您对我提供的查询有什么具体问题吗? 不是真的因为我想检索最新数据而不考虑它的位置 谢谢哥们。尽管这个问题被列为重复,你能介意点赞吗? 我已经更新了这个问题。请看一下

以上是关于如何检索 MS SQL 中的最新记录? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何从重复记录中检索mysql表中的最新数据

SQL 加入 MS ACCESS 中的最新记录

您如何检索每个分组中的前两条记录

SQL 检索最新记录,按唯一外键分组

如何在 SQL 中检索 PL/SQL 记录类型? [复制]

MS Access Query 以检索订单日期列中最新日期的记录