小编典典

SQL Server SELECT LAST N 行

all

这是一个已知问题,但我发现的最佳解决方案是:

SELECT TOP N *
FROM MyTable
ORDER BY Id DESC

我有一张有很多行的桌子。使用该查询是不可能的,因为它需要很多时间。那么如何在不使用 ORDER BY 的情况下选择最后 N 行呢?


阅读 63

收藏
2022-08-05

共1个答案

小编典典

您也可以使用 ROW NUMBER BY PARTITION
功能来做到这一点。一个很好的例子可以在这里找到:

我正在使用 Northwind 数据库的 Orders 表… 现在让我们检索员工 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
2022-08-05