문제

가장 오래된 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 
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top