ماذا يعيد الاستعلام الفرعي القياسي إذا لم يجد أي صف؟

متوسطقراءة دقيقةآخر تحديث 3 أكتوبر 2026

SQL قواعد البيانات

الإجابة

عندما يُستخدم استعلام فرعي في موضع قيمة واحدة ولا يعيد أي صف، تكون قيمته NULL. لا يتحول تلقائيًا إلى صفر، ولا يؤدي مجرد غياب الصف إلى خطأ. تختلف هذه الحالة عن إعادة أكثر من صف، وهي حالة غير مقبولة للاستعلام القياسي.

تظهر أهمية هذا السلوك عند عرض معلومات اختيارية في قائمة SELECT. فقد يعرض الاستعلام الخارجي كل كوكب، بينما يبحث الاستعلام الداخلي عن وصف مطابق. إذا لم يجد الوصف، يبقى الصف الخارجي موجودًا ويظهر العمود المحسوب بقيمة NULL. يمكن استخدام COALESCE إذا أردت بديلًا واضحًا، مثل نص افتراضي.

مثال

SELECT (
  SELECT 'Mars'
  WHERE 1 = 0
) AS planet_name;

ينبغي التمييز بين استعلام لا يعيد صفوفًا واستعلام تجميعي يستخدم COUNT دون تجميع؛ فالأخير يعيد صفًا يحتوي على صفر عند غياب المدخلات. اختلاف شكل الاستعلام يغير النتيجة هنا.

باختصار: الاستعلام القياسي الخالي من الصفوف يعطي NULL، ويمكن معالجة هذه القيمة صراحة عند الحاجة.

هل تريد تعلّم SQL خطوة بخطوة مع تمارين عملية؟ تابع مسار SQL من الأساسيات للاحتراف.

اختبر فهمك

ما القيمة التي يعيدها الاستعلام في العمود planet_name؟

CREATE TABLE planets (
  id INT PRIMARY KEY,
  name VARCHAR(20)
);
INSERT INTO planets (id, name) VALUES (1, 'Earth');

SELECT (
  SELECT name FROM planets WHERE id = 99
) AS planet_name;