اپراتور ANY و ALL در SQL

اپراتورهای ANY و ALL با شرط WHERE یا HAVING استفاده می شوند.
اگر اپراتور ANY هر یک از مقادیر زیرقراردی شرط ها را برآورده کند، True می شود.
اپراتور ALL اگر تمام مقادیر زیرقراردی شرط ها را برآورده کند، True می شود.

ساختار ANY

SELECT column_name(s)
FROM table_name
WHERE column_name operator ANY
(SELECT column_name FROM table_name WHERE condition);

ساختار ALL

SELECT column_name(s)
FROM table_name
WHERE column_name operator ALL
(SELECT column_name FROM table_name WHERE condition);

توجه: اپراتور باید یک اپراتور مقایسه استاندارد باشد   (=, <>, !=, >, >=, <, or <=)

نسخه نمایشی پایگاه داده

در زیر یک انتخاب از جدول " Products" در پایگاه داده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

و یک انتخاب از جدول " OrderDetails" نگاه کنید:

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  بر میگرداند که مثدار OrderDetails برابر 10 باشد .

SELECT ProductName
FROM Products
WHERE ProductID = ANY (SELECT ProductID FROM OrderDetails WHERE Quantity = 10);

31 رکورد انتخاب شد

ProductName
Chais
Chang
Chef Anton's Cajun Seasoning
Uncle Bob's Organic Dried Pears
Konbu

دستور SQL زیر نام محصولاتی را زمانی TRUE  بر میگرداند که مثدار OrderDetails بیشتر از 99 باشد .

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

2 رکورد انتخاب شد

ProductName
Steeleye Stout
Pâté chinois

مثال ALL در SQL

اگر اپراتور ALL همه مقادیر زیرقراردی شرط ها را برآورده کند، True می شود.
دستور SQL زیر نام محصولاتی را زمانی TRUE  بر میگرداند که مثدار OrderDetails برابر 10 باشد .

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

رکوردی انتخاب نشد.

ProductName

 

نظر شما

مقالات و دروس

به خبرنامه مدرسه طراحی وب ایران بپیوندید

   
   
عضویت
پیام تستی برای گروه نرم افزاری وب مهراز