我需要从表中检索最后几个条目。我可以使用以下方法检索它们:
SELECT TOP n *
FROM table
ORDER BY id DESC
我到处寻找,这是我能找到的唯一答案,但这样我就会以相反的顺序得到它们。我需要它们的顺序与它们在表中的顺序相同,因为它适用于消息传递接口。
答案 0 :(得分:5)
使用派生表:
select id, ...
from
(
select top n id, ...
from t
order by id desc
) dt
order by id
答案 1 :(得分:0)
我建议你像这样使用ROW_NUMBER()
:
SELECT *
FROM (
SELECT
*, ROW_NUMBER() OVER (ORDER BY id DESC) AS RowNo
FROM
yourTable
) AS t
WHERE
(RowNO < @n)
ORDER BY
id