sql语句 SQL选择底部记录




sql语句 (2)

我有一个查询,我希望检索最旧的X记录。 目前我的查询是如下所示:

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

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

所以我想知道是否有任何方法来执行这个查询,使我得到最旧的X项目排序,使最新的项目是第一个。 我还应该补充说我的数据库存在于SQL Server 2005上。


嵌入查询。 按升序排序(即最老),然后按降序重新排序...

select * 
from 
(
    SELECT top X Id, Title, Comments, CreatedDate
    FROM MyTable
    WHERE CreatedDate > @OlderThanDate
    ORDER BY CreatedDate 
) a
order by createddate desc 

为什么不使用子查询?

SELECT T1.* 
FROM
(SELECT TOP X Id, Title, Comments, CreatedDate
FROM MyTable
WHERE CreatedDate > @OlderThanDate
ORDER BY CreatedDate) T1
ORDER BY CreatedDate DESC




tsql