sql-server - 选择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
解决方案
您需要将子查询用作派生表并从中选择:
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
推荐阅读
- c++ - 有没有办法使用重载运算符作为比较的一部分
- python - 有没有办法为熊猫数据框编写带有 groupby 子句的自定义累积聚合函数?
- python - 将一个表中的随机数据插入另一个表中的现有行
- excel - 将数字从 Excel 单元格转换为 IEEE 754 十六进制格式
- c++ - C++ 知道成员函数是否被调用
- java - 从 JNI 代码中使对象引用为空
- c# - 在 Linux 上嵌入 C++ 应用程序时 Mono 运行时崩溃
- apache-spark - Spark SQL 中的高阶函数
- android - 我可以在当前的 android 版本上获取当前的应用程序吗?
- java - 如何在 Java 中一次获取所有编译时错误?