चयन सूची का हमेशा अंतिम मूल्यांकन नहीं किया जा सकता है क्योंकि ORDER BY उन उपनामों का उपयोग कर सकता है जिन्हें चयन सूची में परिभाषित किया गया है, इसलिए उन्हें बाद में निष्पादित किया जाना चाहिए। उदाहरण के लिए:
SELECT foo+bar foobar FROM table1 ORDER BY foobar
मैं कहूंगा कि सामान्य तौर पर निष्पादन का क्रम कुछ इस तरह हो सकता है:
- से
- कहां
- ग्रुप बाय
- चुनें
- हो रहा है
- आदेश दें
HAVING और ORDER BY परिणाम को बदले बिना GROUP BY और WHERE क्लॉज़ की अदला-बदली की जा सकती है।
वास्तव में चीजें अधिक जटिल हैं क्योंकि डेटाबेस विभिन्न निष्पादन योजनाओं के अनुसार निष्पादन को पुन:व्यवस्थित कर सकता है। जब तक परिणाम वही रहता है, इससे कोई फर्क नहीं पड़ता कि इसे किस क्रम में निष्पादित किया गया है।
यह भी ध्यान दें कि यदि ORDER BY क्लॉज के लिए एक इंडेक्स चुना जाता है तो डिस्क से पढ़े जाने पर पंक्तियाँ पहले से ही सही क्रम में हो सकती हैं। इस मामले में ORDER BY क्लॉज वास्तव में बिल्कुल भी निष्पादित नहीं होता है।