TSQL从表中选择最后10行?

时间:2011-06-26 17:42:57

标签: sql sql-server sql-server-2008

我有一个包含3亿行的表,以及[DataDate]列上的聚簇索引。

如何选择此表格的最后10行(我想在表格中找到最近的日期)?

数据库:Microsoft SQL Server 2008 R2。

更新

以下答案可以完美运行 - 但前提是[DataDate]上有聚集索引。毕竟,这个表是3亿行,而一个简单的查询最终需要花费数小时来执行而不是秒。查询计划使用[DataDate]上的聚簇索引在几十毫秒内获得结果。

3 个答案:

答案 0 :(得分:10)

TOP (Transact-SQL)指定仅从查询结果返回第一组行。行集可以是行的数量或百分比。 TOP表达式可用于SELECTINSERTUPDATEMERGEDELETE语句。

SELECT TOP(10) *
FROM MyTable
ORDER BY DataDate DESC

答案 1 :(得分:8)

TOP

SELECT TOP(10) [DataDate] FROM YourTable ORDER BY [DataDate] DESC   

答案 2 :(得分:2)

使用ORDER BY进行反向排序并使用TOP。