如何检索 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 如果您有组在 CTEROW_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 by
和fetch
:
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 中的最新记录? [复制]的主要内容,如果未能解决你的问题,请参考以下文章