10

我有一个查询,我希望检索最旧的 X 记录。目前我的查询是这样的:

SELECT Id, Title, Comments, CreatedDate
FROM MyTable
WHERE CreatedDate > @OlderThanDate
ORDER BY CreatedDate DESC

我知道通常我会删除“DESC”关键字来切换记录的顺序,但是在这种情况下,我仍然希望首先获得以最新项目排序的记录。

因此,我想知道是否有任何方法可以执行此查询,以便对最旧的 X 项进行排序,使最新的项排在第一位。我还应该补充一点,我的数据库存在于 SQL Server 2005 上。

4

2 回答 2

22

为什么不只使用子查询?

SELECT T1.* 
FROM
(SELECT TOP X Id, Title, Comments, CreatedDate
FROM MyTable
WHERE CreatedDate > @OlderThanDate
ORDER BY CreatedDate) T1
ORDER BY CreatedDate DESC
于 2008-09-13T21:17:08.387 回答
1

嵌入查询。当按升序排序(即最旧的)时,您取前 x,然后按降序重新排序...

select * 
from 
(
    SELECT top X Id, Title, Comments, CreatedDate
    FROM MyTable
    WHERE CreatedDate > @OlderThanDate
    ORDER BY CreatedDate 
) a
order by createddate desc 
于 2008-09-13T21:18:05.293 回答