الدرس 9 من 10
تصنيف بالشروط
- 11 دقيقة
- 5 معايير للتصحيح
- 3 تلميحات
- إلى المطلوب
هدف الدرس
CASE WHEN
01
الشرح
CASE يشتقّ من القيمة تصنيفًا داخل الاستعلام نفسه: يجرّب شروط WHEN بالترتيب، ويُرجع قيمة أول شرط يصدق، ثم يتوقّف.
CASE WHEN price >= 500 THEN 'فاخر' WHEN price >= 100 THEN 'متوسط' ELSE 'اقتصادي' END AS band
لذلك يأتي الأضيق أولًا: لو قدّمت price >= 100 لابتلع الفاخر معه، لأن كل ما فوق 500 فوق 100 أيضًا. وبلا ELSE يأخذ ما لم يطابق شيئًا NULL.
02
المطلوب
اعرض name وstock وعمودًا اسمه status: 'نافد' إن كان المخزون صفرًا، و'قليل' إن كان دون 10، و'متاح' لما سوى ذلك.
معايير التصحيح
5 معايير- الأعمدة name و stock و status
- كل المنتجات حاضرة
- المخزون الصفري «نافد» لا «قليل»
- من 1 إلى 9 «قليل»
- من 10 فأكثر «متاح»
الجداول المتاحة في هذا الدرس
CREATE TABLE products (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
category TEXT NOT NULL,
price INTEGER NOT NULL,
stock INTEGER NOT NULL
);
INSERT INTO products (name, category, price, stock) VALUES
('شاشة 27 بوصة', 'تقنية', 899, 4),
('سماعة لاسلكية', 'تقنية', 249, 12),
('لوحة مفاتيح', 'تقنية', 189, 0),
('شاحن سريع', 'تقنية', 79, 40),
('كرسي مكتب', 'منزل', 649, 3),
('رف كتب', 'منزل', 249, 7),
('مصباح مكتب', 'منزل', 100, 18),
('حقيبة ظهر', 'قرطاسية', 180, 22),
('دفتر ملاحظات', 'قرطاسية', 15, 200),
('أقلام ملونة', 'قرطاسية', 25, 0),
('قاموس عربي', 'كتب', 95, 10),
('رواية', 'كتب', 45, 30);