عملگرهای ANY و ALL

از ویکی‌کد، دانشنامهٔ برنامه‌نویسی
پرش به ناوبری پرش به جستجو
Main Page Tutorial
Sql-menu.png
موارد آموزشی
۱خانه
۲مقدمه
۳دستور زبان
۴عبارت SELECT
۵عبارت SELECT DISTINCT
۶شرط WHERE
۷عملگرهای AND, OR, NOT
۸کلمهٔ کلیدی ORDER BY
۹عبارت INSERT INTO
۱۰مقدارهای NULL
۱۱عبارت UPDATE
۱۲عبارت DELETE
۱۳عبارت‌های TOP ،LIMIT یا ROWNUM
۱۴توابع MIN و MAX
۱۵توابع COUNT ،AVG و SUM
۱۶عملگر LIKE
۱۷کاراکترهای Wildcard
۱۸عملگر IN
۱۹عملگر BETWEEN
۲۰نام‌های مستعار (Aliases)
۲۱متصل کردن (Join)
۲۲کلمهٔ کلیدی INNER JOIN
۲۳کلمهٔ کلیدی LEFT JOIN
۲۴کلمهٔ کلیدی RIGHT JOIN
۲۵کلمهٔ کلیدی FULL OUTER JOIN
۲۶دستور Self JOIN
۲۷عملگر UNION
۲۸عبارت GROUP BY
۲۹عبارت HAVING
۳۰عملگر EXISTS
۳۱عملگرهای ANY و ALL
۳۲عبارت SELECT INTO
۳۳عبارت INSERT INTO SELECT
۳۴عبارت CASE
۳۵توابع NULL
۳۶Stored Procedure
۳۷یادداشت‌ها
بانک اطلاعاتی
مرجع
مثال‌ها

عملگرهای ANY و ALL در SQL

عملگرهای ANY و ALL با عبارت‌های WHERE و HAVING استفاده می‌شوند.[۱]

عملگر ANY اگر هرکدام از مقدارهای subquery شرط را برآورده کند، true برمی‌گرداند.

عملگر ALL اگر همه مقدارهای subquery شرط را برآورده کنند، true برمی‌گرداند.

نحو ANY
1 SELECT column_name(s)
2 FROM table_name
3 WHERE column_name operator ANY
4 (SELECT column_name FROM table_name WHERE condition);
نحو ALL
1 SELECT column_name(s)
2 FROM table_name
3 WHERE column_name operator ALL
4 (SELECT column_name FROM table_name WHERE condition);

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

نسخه نمایشی بانک اطلاعاتی

در ادامه انتخابی از جدول “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

مثال‌های SQL ANY

عملگر ANY اگر هر یک از مقدارهای subquery شرط را برآورده کند، true برمی‌گرداند.

عبارت SQL زیر TRUE برمی‌گرداند و اگر در جدول OrderDetails رکوردی بیابد که quantity = ۱۰ نام محصولات را لیست می‌کند:

مثال
1 SELECT ProductName
2 FROM Products
3 WHERE ProductID = ANY (SELECT ProductID FROM OrderDetails WHERE Quantity = 10);

عبارت SQL زیر TRUE برمی‌گرداند و اگر در جدول OrderDetails رکوردی بیابد که quantity > 99 نام محصولات را لیست می‌کند:

مثال
1 SELECT ProductName
2 FROM Products
3 WHERE ProductID = ANY (SELECT ProductID FROM OrderDetails WHERE Quantity > 99);

مثال SQL ALL

عملگر ALL اگر همه مقادیر subquery شرط را برآورده کنند TRUE برمی‌گرداند.

عبارت SQL زیر TRUE برمی‌گرداند و اگر در جدول OrderDetails همه رکوردها quantity = ۱۰ را داشته باشند نام محصولات را لیست می‌کند (بنابراین، این مثال FALSE برمی‌گرداند، زیرا همه رکوردها در جدول OrderDetails مقدار quantity = ۱۰ را ندارند):

مثال
1 SELECT ProductName
2 FROM Products
3 WHERE ProductID = ALL (SELECT ProductID FROM OrderDetails WHERE Quantity = 10);



منابع آموزشی