我有一个包含3亿行的表,以及[DataDate]列上的聚簇索引。
如何选择此表格的最后10行(我想在表格中找到最近的日期)?
数据库:Microsoft SQL Server 2008 R2。
更新
以下答案可以完美运行 - 但前提是[DataDate]上有聚集索引。毕竟,这个表是3亿行,而一个简单的查询最终需要花费数小时来执行而不是秒。查询计划使用[DataDate]上的聚簇索引在几十毫秒内获得结果。
答案 0 :(得分:10)
TOP (Transact-SQL)指定仅从查询结果返回第一组行。行集可以是行的数量或百分比。 TOP
表达式可用于SELECT
,INSERT
,UPDATE
,MERGE
和DELETE
语句。
SELECT TOP(10) *
FROM MyTable
ORDER BY DataDate DESC
答案 1 :(得分:8)
SELECT TOP(10) [DataDate] FROM YourTable ORDER BY [DataDate] DESC
答案 2 :(得分:2)
使用ORDER BY进行反向排序并使用TOP。