这是一个已知的问题,但我找到的最佳解决方案是:
SELECT TOP N *
FROM MyTable
ORDER BY Id DESC
我有一张有很多行的桌子.不可能使用该查询,因为它需要很多时间.那么,在不使用ORDER BY的情况下,如何 Select 最后N行呢?
EDIT
抱歉重复了this one题
这是一个已知的问题,但我找到的最佳解决方案是:
SELECT TOP N *
FROM MyTable
ORDER BY Id DESC
我有一张有很多行的桌子.不可能使用该查询,因为它需要很多时间.那么,在不使用ORDER BY的情况下,如何 Select 最后N行呢?
EDIT
抱歉重复了this one题
您也可以通过使用按分区的行数功能来实现这一点.下面是一个很好的例子:
我正在使用Northwind数据库的订单表...现在,让我们检索员工5最近下的5个订单:
SELECT ORDERID, CUSTOMERID, OrderDate FROM ( SELECT ROW_NUMBER() OVER (PARTITION BY EmployeeID ORDER BY OrderDate DESC) AS OrderedDate,* FROM Orders ) as ordlist WHERE ordlist.EmployeeID = 5 AND ordlist.OrderedDate <= 5