منشور

سلسلة دروس SQL| عبارتي Any, ALL

هذه المقالة جزء من سلسلة دروس SQL، يمكنك الاطلاع على الفهرس

عبارة ALL و ANY في SQL

تُستخدم عبارتي ANY و ALL مع عبارة WHERE أو HAVING.

ترجع عبارة ANY القيمة TRUE إذا كانت أي من قيم الاستعلام الفرعي تفي بالشرط.

ترجع عبارة ALL القيمة TRUE إذا كانت جميع قيم الاستعلام الفرعي تفي بالشرط.

بناء جملة ANY

1
2
3
4
5
6
7
8
9
		SELECT column_name(s)

		FROM table_name

		WHERE column_name operator ANY

		(SELECT column_name FROM table_name WHERE condition);

بناء جملة ALL

1
2
3
4
5
6
7
8
9
        SELECT column_name(s)

        FROM table_name

        WHERE column_name operator ALL

        (SELECT column_name FROM table_name WHERE condition); 

ملاحظة: يجب أن تكون العبارة عامل مقارنة قياسي (= أو <> أو =! أو > أو => أو < أو =<).

استعراض قاعدة البيانات

فيما يلي تحديد من جدول “المنتجات” في قاعدة البيانات النموذجية Northwind:

ProductID ProductName SupplierID CategoryID Unit Price
1 Chais 1 1 10 boxes x 20 bags 18
2 Chang 1 1 24 - 12 oz bottles 19
3 Aniseed Syrup 1 2 12 - 550 ml bottles 10
4 Chef Anton’s Cajun Seasoning 2 2 48 - 6 oz jars 22
5 Chef Anton’s Gumbo Mix 2 2 36 boxes 21.35

و تحديد من جدول “تفاصيل الطلب”:

OrderDetailID OrderID ProductID Quantity
1 10248 11 12
2 10248 42 10
3 10248 72 5
4 10249 14 9
5 10249 51 40

مثال عن ANY في SQL

تُرجع العبارة ANY القيمة TRUE إذا كانت أي من قيم الاستعلام الفرعي تفي بالشرط.

تقوم عبارة SQL التالية بإرجاع TRUE وتسرد أسماء المنتجات الموجودة في جدول “تفاصيل الطلب” وكميتها تساوي 10:

1
2
3
4
5
6
7
		SELECT ProductName

		FROM Products

		WHERE ProductID = ANY (SELECT ProductID FROM OrderDetails WHERE Quantity > 99); 

مثال عن ALL في SQL

ترجع عبارة ALL القيمة TRUE إذا كانت جميع قيم الاستعلام الفرعي تفي بالشرط.

تقوم عبارة SQL التالية بإرجاع TRUE وتسرد أسماء المنتجات إذا كانت جميع السجلات في جدول “تفاصيل الطلب” تحتوي على كمية = 10 (لذلك ، هذا المثال سيُرجع FALSE ، لأنه ليس لكل السجلات في جدول “تفاصيل الطلب” كمية = 10):

1
2
3
4
5
6
7
		SELECT ProductName

		FROM Products

		WHERE ProductID = ALL (SELECT ProductID FROM OrderDetails WHERE Quantity = 10);

التالي: عبارة SELECT INTO

هذا المنشور تحت ترخيص CC BY 4.0 بواسطة المؤلف.