আমি একটি অ্যাপ্লিকেশন ব্যবহার করছি (মানচিত্র সার্ভার - http://mapserver.org/ ) যা এসকিউএল স্টেটমেন্টগুলিকে আবৃত করে , যাতে অর্ডার বাই স্টেটমেন্টটি অভ্যন্তরীণ কোয়েরিতে থাকে । যেমন
SELECT * FROM (
SELECT ID, GEOM, Name
FROM t
ORDER BY Name
) as tbl
অ্যাপ্লিকেশনটিতে অনেকগুলি বিভিন্ন ডাটাবেস ড্রাইভার রয়েছে। আমি মূলত এমএস এসকিউএল সার্ভার ড্রাইভার এবং এসকিউএল সার্ভার ২০০৮ ব্যবহার করি This যদি কোনও অর্ডার বাই বাই একটি সাবকোয়ারিতে পাওয়া যায় তবে এটি একটি ত্রুটি ফেলে rows
এমএস ডক্স থেকে (যদিও এটি এসকিউএল সার্ভার 2000 এর জন্য এটি এখনও প্রয়োগ হয় বলে মনে হচ্ছে):
আপনি যখন একটি ভিউ, একটি ইনলাইন ফাংশন, উত্পন্ন টেবিল বা উপকোয়রিতে অর্ডার বাই ক্লজ ব্যবহার করেন, তখন এটি অর্ডারড আউটপুটটির গ্যারান্টি দেয় না। পরিবর্তে, অর্ডার বাই ক্লজটি কেবল গ্যারান্টি হিসাবে ব্যবহার করা হয় যে শীর্ষ অপারেটর দ্বারা উত্পাদিত ফলাফল সেটটি একটি নিয়মিত মেকআপ করে। অর্ডার বাই ক্লজটি কেবলমাত্র আদেশ প্রাপ্ত ফলাফল সেটকে গ্যারান্টি দেয় যখন এটি বাহ্যতম সलेक्ट নির্বাচন বিবরণীতে নির্দিষ্ট করা থাকে।
তবে পোস্টগ্রিসে চালিত হওয়ার সময় একই ধরণের ক্যোয়ারি (9) এবং ওরাকল ফলাফল প্রদান করে - সাবকোয়ারিতে সংজ্ঞায়িত ক্রম হিসাবে। পোস্টগ্রিসে কোয়েরি প্ল্যান দেখায় ফলাফলগুলি সাজানো হয়েছে এবং পোস্টগ্রিজের রিলিজ নোটগুলিতে আইটেমটি অন্তর্ভুক্ত রয়েছে যা বোঝায় সাবকোরি অর্ডারগুলি ব্যবহৃত হয়:
উপরের ক্যোয়ারির সাথে সাব-কোয়ের অর্ডার যখন মিলবে তখন বাছাই করুন
http://en.wikedia.org/wiki/Order_by বলেছেন:
যদিও কিছু ডাটাবেস সিস্টেমগুলি সাবর্ডটেক্টগুলি বা দেখার সংজ্ঞাগুলিতে একটি অর্ডার বিউটির দ্বারা নির্দিষ্টকরণের অনুমতি দেয়, সেখানে উপস্থিতির কোনও প্রভাব নেই।
তবে আমার নিজের ক্যোয়ারী পরিকল্পনাগুলি পরীক্ষা করা থেকে:
- এসকিউএল সার্ভার ২০০৮ একটি সাবকোয়রিতে অর্ডার সমর্থন করে না
- পোস্টগ্রেস 9 একটি সাবকিউরিতে অর্ডারকে সমর্থন করে
- ওরাকল 10 জি একটি subquery দ্বারা অর্ডার সমর্থন করে
সুতরাং আমার প্রশ্নে এমন কোনও লিঙ্ক রয়েছে যা আনুষ্ঠানিকভাবে নিশ্চিত বা অস্বীকার করতে পারে যে পোস্টগ্র্রেস এবং ওরাকল একটি সাবকিউরিতে বাছাইয়ের অনুমতি দেয় না?
ORDER BY
৫..6 (এবং মারিয়াডিবি ৫.৩) মধ্যে অপ্টিমাইজারের উন্নতিগুলি সাবকোয়ারিতে অপ্রয়োজনীয় হিসাবে চিহ্নিত করবে এবং অপ্রয়োজনীয় বাছাই না করবে।