2008-09-13 78 views
10

我有一個查詢,我希望檢索最舊的X記錄。目前我的查詢是類似以下內容:SQL選擇底部記錄

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

我知道,通常我會刪除「DESC」關鍵字來切換記錄的順序,但是在這種情況下我仍然希望得到與所訂購的記錄最新的項目。

所以我想知道是否有任何方法來執行此查詢,以便我得到最舊的X項目排序,使最新的項目是第一個。我還應該補充說我的數據庫存在於SQL Server 2005上。

回答

22

爲什麼不直接使用子查詢?

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

因此,史詩般的旅程開始...... – Jaydles 2013-10-27 01:54:46

1

嵌入查詢。當按升序排列時(即最早的),您可以將x排在最前面,然後按降序重新排序......

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