TSQL从表中选择最后10行?

Con*_*ngo 4 sql sql-server sql-server-2008

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

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

数据库:Microsoft SQL Server 2008 R2.

更新

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

Akr*_*hda 10

TOP(Transact-SQL)指定仅从查询结果返回第一组行.行集可以是行的数量或百分比.的TOP表达可以用在SELECT,INSERT,UPDATE,MERGE,和DELETE语句.

SELECT TOP(10) *
FROM MyTable
ORDER BY DataDate DESC
Run Code Online (Sandbox Code Playgroud)


ba_*_*end 8

最佳

SELECT TOP(10) [DataDate] FROM YourTable ORDER BY [DataDate] DESC   
Run Code Online (Sandbox Code Playgroud)

  • @gbn:这里的要求是获取最后10行,而不是最后10个`DataDate`值...这意味着我后来成了但是得到了正确答案;) (2认同)