يشير الاختصار CTE إلى تعبير جدول مشترك، وهو نتيجة استعلام مسماة نعرّفها باستخدام WITH. يمكن للاستعلام الرئيسي الرجوع إلى هذا الاسم كما يرجع إلى مصدر بيانات، مما يساعد على تقسيم الحل الطويل إلى خطوات مفهومة وواضحة للقارئ.
لا تنشئ هذه الصياغة جدولًا دائمًا في قاعدة البيانات، ولا تحفظ نتيجة مستقلة يمكن استخدامها في أي استعلام لاحق. يقتصر نطاق الاسم على التعليمة التي تحتوي على تعريفه. ويمكن داخل التعليمة نفسها استخدام النتيجة المسماة في أكثر من موضع عند الحاجة.
مثال
WITH tasks AS (
SELECT 1 AS id, 'done' AS status
UNION ALL SELECT 2, 'open'
), completed_tasks AS (
SELECT id
FROM tasks
WHERE status = 'done'
)
SELECT id
FROM completed_tasks;
يسمي المثال خطوة استخراج المهام المكتملة ثم يقرأ منها. تصبح فائدة هذه الطريقة أكبر عندما تحتوي الخطوة على حساب رتبة أو تجميع أو شروط عديدة. لكن استخدامها لا يضمن وحده أن الاستعلام أسرع؛ فاختيارها هنا يهدف أساسًا إلى تنظيم المنطق.
باختصار: تتيح WITH تعريف نتيجة مسماة داخل تعليمة واحدة، وتساعد CTE على كتابة الاستعلامات المعقدة بطريقة أسهل للفهم.
هل تريد تعلّم SQL خطوة بخطوة مع تمارين عملية؟ تابع مسار SQL من الأساسيات للاحتراف.