2008-09-13 7 views
10

मेरे पास एक प्रश्न है जहां मैं सबसे पुराने एक्स रिकॉर्ड पुनर्प्राप्त करना चाहता हूं।एसक्यूएल नीचे रिकॉर्ड्स का चयन करें

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

मुझे पता है कि सामान्य रूप से मैं रिकॉर्ड का क्रम बदलने के लिए 'DESC' कीवर्ड निकालने जाएगा, फिर भी इस मामले में मैं अभी भी रिकॉर्ड के साथ आदेश दिया प्राप्त करना चाहते हैं: वर्तमान में अपनी क्वेरी निम्नलिखित की तरह कुछ है सबसे पहले सबसे पहले आइटम।

तो मैं जानना चाहता हूं कि इस प्रश्न को करने का कोई साधन है या नहीं, मुझे सबसे पुराना एक्स आइटम सॉर्ट किया गया है जैसे कि नवीनतम आइटम पहले है। मुझे यह भी जोड़ना चाहिए कि मेरा डेटाबेस SQL ​​सर्वर 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

क्वेरी को एम्बेड करें। आरोही क्रम में क्रमबद्ध करते समय आप शीर्ष एक्स लेते हैं (यानी सबसे पुराना) और फिर अवरोही क्रम में उन्हें फिर से क्रमबद्ध करें ...

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