यह वास्तव में प्रश्न का उत्तर नहीं देता है, लेकिन यह भाषा की आवश्यकता के बजाय एक पार्सर बग (या 'फीचर') लगता है।
माई ओरेकल सपोर्ट के अनुसार, ऐसा लगता है कि इसे बग 14196463 के रूप में उठाया गया था, लेकिन बिना किसी समाधान के बंद कर दिया गया। सामुदायिक थ्रेड 3561546 में भी इसका उल्लेख किया गया है। हालांकि इनमें से किसी एक को देखने के लिए आपको एक एमओएस खाता, या कम से कम एक ओरेकल खाता चाहिए।
यह एक ओटीएन थ्रेड में भी चर्चा की गई है, जहां तक मैं कह सकता हूं कि एमओएस खाते की बजाय मूल ओरेकल लॉगिन की आवश्यकता है। इसमें भी अधिक जानकारी नहीं है लेकिन आपके निष्कर्षों को दोहराता है, और यह भी बताता है कि व्यवहार कम से कम 9.2.0.8 और शायद बहुत पहले से मौजूद है।
दस्तावेज़ीकरण थोड़ा अस्पष्ट है लेकिन यह इंगित नहीं करता है कि यह एक समस्या होने की उम्मीद है:
<ब्लॉकक्वॉट>
सेट ऑपरेटरों वाले यौगिक प्रश्नों के लिए UNION
, INTERSECT
, MINUS
, या UNION ALL
, ORDER BY
क्लॉज में स्पष्ट अभिव्यक्तियों के बजाय स्थिति या उपनाम निर्दिष्ट होना चाहिए। साथ ही, ORDER BY
खंड केवल अंतिम घटक क्वेरी में प्रकट हो सकता है। ORDER BY
क्लॉज पूरी कंपाउंड क्वेरी द्वारा लौटाई गई सभी पंक्तियों का आदेश देता है।
आप अपनी अभिव्यक्ति को अलियासिंग कर रहे हैं और उसका उपयोग कर रहे हैं, और यह नहीं कहता है कि आपको विशेष घटकों को उपनाम देना है (हालांकि निश्चित रूप से यह नहीं कहता है कि आप नहीं या तो करना होगा)।
अंतिम प्रक्षेपण के लिए उपनाम के मान्य होने के साथ व्यवहार असंगत लगता है, और उपनाम के बारे में सामान्य नियम केवल खंड द्वारा क्रम में मान्य है - ऐसा लगता है कि यह कहीं बीच में गिर रहा है।