دالة COALESCE للتعامل مع قيم NULL
جزء من قسم ما وراء الأساسيات في رحلة SQL على Coddy. الدرس 3 من 27.
تعيد COALESCE الوسيطة الأولى التي ليست NULL:
COALESCE(nickname, first_name, 'Anonymous')يُقرأ من اليسار إلى اليمين ويتوقف عند أول قيمة غير فارغة. إنها الطريقة الأنظف لتوفير قيمة احتياطية في استعلام، دون الحاجة إلى CASE.
الاستخدامات الشائعة:
- عرض
0بدلًا منNULLمنLEFT JOIN:COALESCE(SUM(amount), 0) - اختيار أول حقل اختياري غير فارغ:
COALESCE(mobile, home, work)
التحدي
سهلالجداول والأعمدة المتاحة:
users:id،display_name،orders:user_id،amount
أعد صفًا واحدًا لكل مستخدم يتضمن:
idlabel: قيمةdisplay_nameإذا كانت معيّنة، وإلا فقيمةemail، وإلا فقيمة'unknown'total_spent: مجموع قيمamountلطلبات المستخدم؛ ويجب أن يعرض المستخدمون الذين ليس لديهم طلبات القيمة0(وليسNULL)
رتّب حسب id. تلميح: ي处理 LEFT JOIN من users إلى orders بالإضافة إلى COALESCE(SUM(...), 0) الصفوف المفقودة.
جرّب بنفسك
SELECT u.id,
-- label عبر COALESCE
-- total_spent عبر COALESCE(SUM(...), 0)
FROM users u
LEFT JOIN orders o ON o.user_id = u.id
GROUP BY u.id
ORDER BY u.id
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس ما وراء الأساسيات
1المنطق الشرطي
CASE WHENاستخدام CASE في ORDER BYدالة COALESCE للتعامل مع قيم NULLدالتا NULLIF و IIFمراجعة - الحضورتدرّب بنفسك: Playground لـ SQL