Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

دالة COALESCE للتعامل مع قيم NULL

جزء من قسم ما وراء الأساسيات في رحلة SQL على Coddy — الدرس 3 من 27.

COALESCE تعيد الوسيط الأول الذي ليس NULL:

COALESCE(nickname, first_name, 'Anonymous')

يقرأ من اليسار إلى اليمين ويتوقف عند أول قيمة غير فارغة (non-null). إنها الطريقة الأكثر بساطة لتوفير قيمة احتياطية في استعلام، دون الحاجة إلى CASE.

الاستخدامات الشائعة:

  • إظهار 0 بدلاً من NULL من LEFT JOIN: COALESCE(SUM(amount), 0)
  • اختر أول حقل اختياري غير فارغ: COALESCE(mobile, home, work)
challenge icon

التحدي

سهل

الجداول والأعمدة المتاحة:

  • <strong>users</strong>: <strong>id</strong>, <strong>display_name</strong>, <strong>email</strong>
  • <strong>orders</strong>: <strong>user_id</strong>, <strong>amount</strong>

أعد صفاً واحداً لكل مستخدم يحتوي على:

  • id
  • label: display_name إذا كان معيناً، وإلا email، وإلا 'unknown'
  • total_spent: مجموع amount طلبات المستخدم؛ المستخدمون الذين ليس لديهم طلبات يجب أن يظهروا 0 (وليس NULL)

رتب حسب id. تلميح: استخدام LEFT JOIN من users إلى orders بالإضافة إلى COALESCE(SUM(...), 0) يعالج الصفوف المفقودة.

ورقة مرجعية

تعيد COALESCE أول وسيط غير NULL:

COALESCE(nickname, first_name, 'Anonymous')

الاستخدامات الشائعة:

  • قيمة عرض احتياطية: COALESCE(mobile, home, work)
  • استبدال NULL من تجميعات LEFT JOIN: COALESCE(SUM(amount), 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
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس ما وراء الأساسيات