এ সম্পর্কে আমার দৃষ্টিভঙ্গি হ'ল ডকুমেন্টেশনটি এটিকে যুক্তিসঙ্গতভাবে পরিষ্কার করে দিয়েছে যে অভিপ্রায়টি হ'ল সিএএসইয়ের শর্ট সার্কিট হওয়া উচিত। হারুন যেমন উল্লেখ করেছেন, সেখানে বেশ কয়েকটি মামলা হয়েছে (হা!) যেখানে এটি সর্বদা সত্য নয় বলে দেখানো হয়েছে।
এখনও অবধি, এই সমস্তগুলি বাগ হিসাবে স্বীকৃত এবং স্থির হয়েছে - এসকিউএল সার্ভারের কোনও সংস্করণে আপনি আজ কিনতে এবং প্যাচ করতে পারবেন না (ধ্রুবক-ভাঁজ বাগটি এখনও এটি একটি সংযোজিত আপডেট এএফআইকে তৈরি করে না)। নতুন সম্ভাব্য বাগটি - মূলত এটিজিক বেন-গ্যান দ্বারা রিপোর্ট করা - এখনও তদন্ত করা হয়নি (অ্যারন বা আমি এটি খুব শীঘ্রই সংযোগে যুক্ত করব)।
মূল প্রশ্নের সাথে সম্পর্কিত, CASE- এর সাথে অন্যান্য সমস্যা রয়েছে (এবং তাই COALESCE) যেখানে পার্শ্ব-কার্যকারী ফাংশন বা উপ-প্রশ্নগুলি ব্যবহৃত হয়। বিবেচনা:
SELECT COALESCE((SELECT CASE WHEN RAND() <= 0.5 THEN 999 END), 999);
SELECT ISNULL((SELECT CASE WHEN RAND() <= 0.5 THEN 999 END), 999);
COALESCE ফর্মটি প্রায়শই NULL ফেরত দেয়, আরও বিশদ https://connect.microsoft.com/SQLServer/feedback/details/546437/coalesce-subquery-1-may-return-null এ
অপ্টিমাইজার ট্রান্সফর্ম এবং সাধারণ-এক্সপ্রেশন-ট্র্যাকিং সহ প্রদর্শিত ইস্যুগুলির অর্থ এই যে গ্যারান্টি দেওয়া অসম্ভব যে সিএসই সব পরিস্থিতিতে শর্ট সার্কিট করবে। আমি এমন কেসগুলি কল্পনা করতে পারি যেখানে পাবলিক শো প্ল্যান আউটপুট পরিদর্শন করে আচরণের পূর্বাভাস দেওয়া সম্ভব নাও হতে পারে, যদিও তার আজকের প্রতিবাদ আমার কাছে নেই।
সংক্ষেপে, আমি মনে করি আপনি যথাযথভাবে আত্মবিশ্বাসী হতে পারেন যে সিএএসই সাধারণভাবে শর্ট সার্কিট করবে (বিশেষত যদি কোনও যুক্তিসঙ্গত দক্ষ ব্যক্তি এক্সিকিউশন প্ল্যানটি পরীক্ষা করে, এবং সেই কার্যকরকরণ পরিকল্পনাটি পরিকল্পনার নির্দেশিকা বা ইঙ্গিত সহ 'প্রয়োগ করা হয়') তবে আপনার যদি প্রয়োজন হয় একটি চূড়ান্ত গ্যারান্টি, আপনাকে এসকিউএল লিখতে হবে যাতে প্রকাশটি মোটেই অন্তর্ভুক্ত হয় না।
আমার ধারণা, একটি অত্যন্ত সন্তোষজনক রাষ্ট্র নয়।
CASE
অব্যাহত পরিস্থিতিতে রয়েছে - এটি সর্বদা বাম-থেকে-ডান এবং সর্বদা সংক্ষিপ্ত সার্কিটের মূল্যায়ন করে তা সম্মত করা শক্ত করে তোলে) )।