با استفاده از معادل تابع DECODE در MySQL یک کوئری بنویسید که برای ستون status از جدول orders مقادیر 'A' را به 'Active'، 'I' را به 'Inactive'، NULL را به 'Unknown' و سایر مقادیر را به 'Other' تبدیل و نمایش دهد.
2.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:26 0.0
در MySQL میتوانید رفتار DECODE را با عبارت CASE یا ترکیب IF/IFNULL شبیهسازی کنید؛ مثلاً از CASE WHEN status='A' THEN 'Active' WHEN status='I' THEN 'Inactive' WHEN status IS NULL THEN 'Unknown' ELSE 'Other' END استفاده کنید. اگر خواستید همین منطق را قابل استفاده مجدد کنید میتوانید یک تابع ذخیرهشده (stored function) با نام DECODE بسازید که پارامترها را بررسی و مقدار متناظر را برگرداند؛ برای NULL از IS NULL یا COALESCE استفاده کنید و برای عملکرد بهتر روی ستونهای فیلتر شده ایندکسها را در نظر بگیرید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای شبیهسازی تابع DECODE در MySQL از CASE WHEN استفاده کنید تا مقادیر ستون status را به صورت A→Active، I→Inactive، NULL→Unknown و سایر مقادیر→Other نگاشت کنید. مثال ساده: CASE WHEN status = 'A' THEN 'Active' WHEN status = 'I' THEN 'Inactive' WHEN status IS NULL THEN 'Unknown' ELSE 'Other' END. اگر قصد استفاده مجدد دارید، میتوانید همین منطق را در یک تابع ذخیرهشده با نام DECODE پیادهسازی کنید اما به اثر ایندکسها روی فیلترها توجه کنید. برای خوانایی و کارایی بهتر از COALESCE یا IS NULL برای NULL بودن استفاده کنید تا نتیجه دقیق و پایدار باشد.
گزارش