سؤال

لدي استفسار حيث أرغب في استرداد أقدم سجلات 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