2008-09-13 8 views
10

가장 오래된 X 레코드를 가져올 쿼리가 있습니다. 나는 일반적으로 내가 그러나이 경우에 나는 여전히 함께 주문 기록을 얻으려면, 기록의 순서를 전환 할 수있는 'DESC'키워드를 제거 할 것을 알고SQL Select Bottom Records

SELECT Id, Title, Comments, CreatedDate 
FROM MyTable 
WHERE CreatedDate > @OlderThanDate 
ORDER BY CreatedDate 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

1

이 쿼리를 포함합니다. 오름차순 (예 : 가장 오래된 순서)으로 정렬 한 다음 내림차순으로 정렬하면 상단 x를 취합니다.

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