我有一个查询,我希望检索最旧的X记录。目前我的查询类似于以下内容:
SELECT Id, Title, Comments, CreatedDate
FROM MyTable
WHERE CreatedDate > @OlderThanDate
ORDER BY CreatedDate DESC
我知道通常我会删除'DESC'关键字以切换记录的顺序,但在这种情况下,我仍然希望获得最先用最新项目订购的记录。
所以我想知道是否有任何方法可以执行此查询,以便我将最旧的X项目排序,以便最新的项目是第一个。我还应该补充一点,我的数据库存在于SQL Server 2005上。
答案 0 :(得分:22)
为什么不使用子查询?
SELECT T1.*
FROM
(SELECT TOP X Id, Title, Comments, CreatedDate
FROM MyTable
WHERE CreatedDate > @OlderThanDate
ORDER BY CreatedDate) T1
ORDER BY CreatedDate DESC
答案 1 :(得分:1)
嵌入查询。按升序排序(即最旧的)时,取上面的x,然后按降序重新排序......
select *
from
(
SELECT top X Id, Title, Comments, CreatedDate
FROM MyTable
WHERE CreatedDate > @OlderThanDate
ORDER BY CreatedDate
) a
order by createddate desc