質問

最も古い 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