SQL选择底部记录
时间:2020-03-05 18:52:50 来源:igfitidea点击:
我有一个查询,希望在其中检索最早的X记录。目前,我的查询如下所示:
SELECT Id, Title, Comments, CreatedDate FROM MyTable WHERE CreatedDate > @OlderThanDate ORDER BY CreatedDate DESC
我知道通常我会删除'DESC'关键字来切换记录的顺序,但是在这种情况下,我仍然希望首先使用最新项对记录进行排序。
因此,我想知道是否有任何方法可以执行此查询,以使我得到的最旧的X项已排序,使得最新的项排在第一位。我还应该补充说,我的数据库存在于SQL Server 2005中。
解决方案
回答
为什么不只使用子查询?
SELECT T1.* FROM (SELECT TOP X Id, Title, Comments, CreatedDate FROM MyTable WHERE CreatedDate > @OlderThanDate ORDER BY CreatedDate) T1 ORDER BY CreatedDate DESC
回答
嵌入查询。当我们以升序排列(即最旧的)时,将顶部的x取下,然后以降序重新排序...
select * from ( SELECT top X Id, Title, Comments, CreatedDate FROM MyTable WHERE CreatedDate > @OlderThanDate ORDER BY CreatedDate ) a order by createddate desc