Any, All (Any, All)
اپراتورهای «ANY و ALL در SQL» برای مقایسه با «محدوده مقادیر» می آیند. «ANY» یعنی شرط برای حداقل یک مقدار درست باشد. «ALL» یعنی شرط برای همه مقادیر درست باشد. مثل بازی: اگر هر هم تیمی گل زد، ANY برنده است؛ اگر همه گل زدند، ALL برنده است.
ANY و ALL دقیقاً چه می گویند؟
«اپراتور مقایسه (Comparison Operator)» مثل =، >، < با ANY یا ALL ترکیب می شود. سپس مقدار یک ستون را با خروجی یک زیرپرس وجو مقایسه می کنیم.
قالب ANY
SELECT column_name(s);
FROM table_name;
WHERE column_name operator ANY (
SELECT column_name;
FROM table_name;
WHERE condition;
);
قالب ALL با SELECT
SELECT ALL column_name(s);
FROM table_name;
WHERE condition;
قالب ALL با WHERE یا HAVING
SELECT column_name(s);
FROM table_name;
WHERE column_name operator ALL (
SELECT column_name;
FROM table_name;
WHERE condition;
);
مثال های ANY
اگر در OrderDetails رکوردی با Quantity برابر 10 باشد، نام محصول را برگردان.
SELECT ProductName;
FROM Products;
WHERE ProductID = ANY (
SELECT ProductID;
FROM OrderDetails;
WHERE Quantity = 10;
);
اگر در OrderDetails رکوردی با Quantity بزرگ تر از 99 باشد، درست است.
SELECT ProductName;
FROM Products;
WHERE ProductID = ANY (
SELECT ProductID;
FROM OrderDetails;
WHERE Quantity > 99;
);
اگر Quantity بزرگ تر از 1000 نبود، ANY نتیجه FALSE می دهد.
SELECT ProductName;
FROM Products;
WHERE ProductID = ANY (
SELECT ProductID;
FROM OrderDetails;
WHERE Quantity > 1000;
);
مثال های ALL
لیست همه نام محصولات با SELECT ALL.
SELECT ALL ProductName;
FROM Products;
WHERE TRUE;
اگر ProductID در همه رکوردهای Quantity=10 باشد، آنگاه درست است.
SELECT ProductName;
FROM Products;
WHERE ProductID = ALL (
SELECT ProductID;
FROM OrderDetails;
WHERE Quantity = 10;
);
گام های سریع برای استفاده
- زیرپرس وجو را که مقادیر هدف است بنویس.
- اپراتور مقایسه مناسب را انتخاب کن.
- ANY برای «حداقل یکی» و ALL برای «همه» بگذار.
- شرط ها را اجرا کن و نتیجه را بررسی کن.
نکته: اپراتورها باید استاندارد باشند: =، <>، !=، >، >=، <، <=.
پیوندهای مفید
برای درک وجود رکوردها، EXISTS را ببین. همچنین فیلتر پس از گروه بندی در HAVING کاربردی است. بازبینی ANY و ALL در SQL نیز مفید است.
جمع بندی سریع
- ANY یعنی شرط برای یک مقدار کافی است.
- ALL یعنی شرط برای همه مقادیر لازم است.
- با زیرپرس وجوها ترکیب می شوند.
- اپراتورهای مقایسه باید استاندارد باشند.