首页 > 解决方案 > 选择top N后选择最后一条记录

问题描述

选择前 N 条记录后,我只想选择最后一条记录。所以简而言之,我只想选择一个特定的记录。我尝试使用子查询,但这并不好。它给出了一个错误

子查询返回超过 1 个值。

我知道我所做的子查询提供了超过 1 个值,但是如何在前 N 条记录中选择一个特定记录?

select top 1 (select top 5 Work_date from tbl_dtr where work_date < '2019/09/10' order by Work_date asc) 
from tbl_dtr 
order by Work_date desc

标签: sql-servertsql

解决方案


您需要将子查询用作派生表并从中选择:

select top 1 *
from (select top 5 * 
      from tbl_dtr 
      where work_date < '2019/09/10' 
      order by Work_date asc) t
order by Work_date desc

推荐阅读