10

最も古い X レコードを取得したいクエリがあります。現在、私のクエリは次のようなものです。

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

通常、「DESC」キーワードを削除してレコードの順序を切り替えることはわかっていますが、この場合でも、最新のアイテムを最初に並べたレコードを取得したいと考えています。

したがって、最新のアイテムが最初になるように並べ替えられた最も古い X アイテムを取得するように、このクエリを実行する手段があるかどうかを知りたいです。また、データベースが SQL Server 2005 上に存在することも付け加えておきます。

4

2 に答える 2

22

サブクエリを使用しないのはなぜですか?

SELECT T1.* 
FROM
(SELECT TOP X Id, Title, Comments, CreatedDate
FROM MyTable
WHERE CreatedDate > @OlderThanDate
ORDER BY CreatedDate) T1
ORDER BY CreatedDate DESC
于 2008-09-13T21:17:08.387 に答える
1

クエリを埋め込みます。昇順 (つまり、最も古いもの) で並べ替えたときに上位の x を取得し、それらを降順に並べ替えます ...

select * 
from 
(
    SELECT top X Id, Title, Comments, CreatedDate
    FROM MyTable
    WHERE CreatedDate > @OlderThanDate
    ORDER BY CreatedDate 
) a
order by createddate desc 
于 2008-09-13T21:18:05.293 に答える