कथन में 'ऑर्डर बाय' क्लॉज का उपयोग करके क्वेरी के क्रम को बाध्य किया जा सकता है। एक SQL डेटाबेस वास्तव में यह नहीं समझता है कि आप किस क्रम में चीजें डालते हैं, या किसी दिए गए क्रम में डेटा संग्रहीत करते हैं। इसका मतलब है कि आपको SQL को यह बताना होगा कि आप किस क्रम में आइटम चाहते हैं। उदाहरण के लिए:
Select * from Table
order by column1 desc
इसके बारे में सोचें जैसे कि कुछ सामान अपने दोस्त को देने के लिए - उसके पास बाद में आपके लिए सब कुछ होगा, लेकिन वह इसे इस बीच कहीं स्टोर कर लेती है। जब आप किसी और चीज़ के लिए जगह बनाना नहीं चाह रहे हों, तो वह उसे इधर-उधर कर सकती है, या उसे उसी क्रम में वापस सौंप सकती है, जिस क्रम में आपने उसे दिया था, लेकिन आपने उसे इसे क्रम में रखने के लिए नहीं कहा था, इसलिए वह ऐसा नहीं करती है। .
डेटाबेस को पृष्ठभूमि में चीजों को इधर-उधर करने में सक्षम होना चाहिए, इसलिए जिस तरह से वे बनाए जाते हैं वह आंतरिक रूप से किसी भी ऑर्डर के बारे में नहीं जानते हैं - जब आप इसे डेटाबेस को देते हैं, तो आपको ऑर्डर जानने की आवश्यकता होती है, ताकि आप इसे वापस रख सकें। आदेश आप बाद में चाहते हैं। ऑर्डर क्लॉज SQL को डेटा पर ऑर्डर लगाने की अनुमति देता है, लेकिन यह याद नहीं रखता है या अपने आप में एक है।
महत्वपूर्ण बिंदु :यहां तक कि जब एसक्यूएल ने पिछले 1 मिलियन बार स्टेटमेंट द्वारा ऑर्डर के बिना आइटम्स को सही क्रम में लौटाया, तो यह गारंटी नहीं देता कि वह ऐसा करेगा। यहां तक कि अगर टेबल पर एक क्लस्टर इंडेक्स मौजूद है, तो परिणाम आपके अपेक्षित क्रम में वापस आने की गारंटी नहीं है। विशेष रूप से जब SQL संस्करण बदलते हैं, स्पष्ट रूप से क्लॉज द्वारा ऑर्डर का उपयोग नहीं करने से प्रोग्राम टूट सकते हैं जो मानते हैं कि क्वेरी उनके इच्छित क्रम में होगी!