سلسلة دروس SQL| عبارتي Any, ALL
هذه المقالة جزء من سلسلة دروس SQL، يمكنك الاطلاع على الفهرس
- عبارة ALL و ANY في SQL
- بناء جملة ANY
- بناء جملة ALL
- استعراض قاعدة البيانات
- مثال عن ANY في SQL
- مثال عن 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