تخطي إلى المحتوى الرئيسي
الدعم
تسجيل الدخول باستخدام حساب Microsoft
تسجيل الدخول أو إنشاء حساب.
مرحباً،
تحديد استخدام حساب مختلف!
لديك حسابات متعددة
اختر الحساب الذي تريد تسجيل الدخول باستخدامه.

الاستعلام الفرعي هو عبارة SELECT متداخلة داخل SELECT، SELECT... إلى، إدراج... عبارة INTO أو DELETE أو UPDATE أو داخل طلب فرعي آخر.

بناء الجملة

يمكنك استخدام ثلاثة أشكال من بناء الجملة لإنشاء استعلام فرعي:

مقارنة [ANY | ALL | SOME] (sqlstatement)

تعبير [NOT] IN (sqlstatement)

[NOT] EXISTS (sqlstatement)

يحتوي الاستعلام الفرعي على هذه الأجزاء:

الجزء

الوصف

المقارنه

تعبير وعامل مقارنة يقارن التعبير بنتائج الاستعلام الفرعي.

تعبير

تعبير يتم البحث عن مجموعة نتائج الاستعلام الفرعي له.

sqlstatement

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


ملاحظات

يمكنك استخدام استعلام فرعي بدلا من تعبير في قائمة الحقول لعبارة SELECT أو في عبارة WHERE أو HAVING. في استعلام فرعي، يمكنك استخدام عبارة SELECT لتوفير مجموعة من قيمة محددة واحدة أو أكثر لتقييمها في تعبير عبارة WHERE أو HAVING.

استخدم دالة تقييم ANY أو SOME، المرادفة، لاسترداد السجلات في الاستعلام الرئيسي التي تفي للمقارنة مع أي سجلات تم استردادها في الاستعلام الفرعي. يقوم المثال التالي بإرجاع جميع المنتجات التي يكون سعر وحدتها أكبر من سعر أي منتج مباع بخصم 25 بالمائة أو أكثر:

SELECT * FROM Products WHERE UnitPrice > ANY (SELECT UnitPrice FROM OrderDetails WHERE Discount >= .25);

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

استخدم دالة تقييم IN لاسترداد تلك السجلات فقط في الاستعلام الرئيسي الذي يحتوي بعض السجلات في الاستعلام الفرعي على قيمة متساوية لها. يرجع المثال التالي جميع المنتجات بخصم 25 بالمائة أو أكثر:

SELECT * FROM Products WHERE ProductID IN (SELECT ProductID FROM OrderDetails WHERE Discount >= .25);

على العكس من ذلك، يمكنك استخدام NOT IN لاسترداد تلك السجلات فقط في الاستعلام الرئيسي الذي لا يحتوي أي سجل في الاستعلام الفرعي على قيمة متساوية.

استخدم دالة تقييم EXISTS (مع الكلمة الاختيارية NOT المحجوزة) في مقارنات true/false لتحديد ما إذا كان الاستعلام الفرعي يرجع أي سجلات.

يمكنك أيضا استخدام الأسماء المستعارة لاسم الجدول في استعلام فرعي للإشارة إلى الجداول المدرجة في عبارة FROM خارج الاستعلام الفرعي. يقوم المثال التالي بإرجاع أسماء الموظفين الذين تكون رواتبهم مساوية لمتوسط مرتبات جميع الموظفين الذين لديهم نفس المسمى الوظيفي أو أكبر منه. يتم إعطاء جدول الموظفين الاسم المستعار "T1":

SELECT LastName, FirstName, Title, Salary FROM Employees AS T1 WHERE Salary >= (SELECT Avg(Salary) FROM Employees WHERE T1.Title = Employees.Title) Order by Title;

في المثال السابق، يكون كلمة محجوزة AS اختياريا.

يسمح ببعض الاستعلامات الفرعية في الاستعلامات الجدولية — على وجه التحديد، كمؤشرات (تلك الموجودة في عبارة WHERE). الاستعلامات الفرعية كإخراج (تلك الموجودة في قائمة SELECT) غير مسموح بها في الاستعلامات الجدولية.



هل تحتاج إلى مزيد من المساعدة؟

الخروج من الخيارات إضافية؟

استكشف مزايا الاشتراك، واستعرض الدورات التدريبية، وتعرف على كيفية تأمين جهازك، والمزيد.

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

هل كانت المعلومات مفيدة؟

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

نشكرك على ملاحظاتك!

×