با استفاده از معادل تابع 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 استفاده کنید و برای عملکرد بهتر روی ستون‌های فیلتر شده ایندکس‌ها را در نظر بگیرید.

توسط پژوهشگر در 202 روز قبل ساعت 02:26
دسته بندی ها: MySQL MySQL for beginner
reyhaneh در 202 روز قبل ساعت 09:41

برای شبیه‌سازی تابع 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 بودن استفاده کنید تا نتیجه دقیق و پایدار باشد.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری