كيف أضيف قيمة محسوبة باستعلام فرعي داخل SELECT؟

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

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

الإجابة

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

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

مثال

WITH books AS (
  SELECT 1 AS id
  UNION ALL
  SELECT 2
)
SELECT id,
       (SELECT COUNT(*) FROM books) AS total_books
FROM books
ORDER BY id;

الاسم المستعار يحدد عنوان العمود المحسوب فقط. أما إذا احتوى الاستعلام الداخلي على مرجع للصف الخارجي، فقد تختلف القيمة المحسوبة من صف إلى آخر حسب ذلك المرجع.

باختصار: يضيف الاستعلام الفرعي داخل SELECT قيمة لكل صف، بشرط أن تكون نتيجته مناسبة لموضع قيمة مفردة.

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

اختبر فهمك

ما الصفوف التي يعيدها هذا الاستعلام بالترتيب؟

CREATE TABLE books (
  id INT PRIMARY KEY
);
INSERT INTO books (id) VALUES (1), (2), (3);

SELECT id,
       (SELECT COUNT(*) FROM books) AS total_books
FROM books
ORDER BY id;