الدرس 9 من 10
تصنيف بالشروط
- 11 دقيقة
- 5 فحوص
- 3 تلميحات
- إلى المطلوب
هدف الدرس
الجملة CASE WHEN
الشرح
تصنّف بـCASE القيم داخل الاستعلام نفسه، فهو يجرّب شروط WHEN بالترتيب، ويُرجع قيمة أول شرط يتحقّق ثم يتوقّف.
CASE WHEN price >= 500 THEN 'فاخر' WHEN price >= 100 THEN 'متوسط' ELSE 'اقتصادي' END AS band
ولهذا تكتب الشرط الأضيق أولًا، فلو قدّمت price >= 100 لدخلت فيه المنتجات الفاخرة أيضًا، لأنّ كل ما فوق 500 هو فوق 100 كذلك. وإن لم تكتب ELSE فإنّ ما لم يطابق أيّ شرط يأخذ القيمة NULL.
المطلوب
اعرض 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);