SQL ANY و همه اپراتورها
ANY
و ALL
اپراتورهای اجازه می دهد شما را به انجام یک مقایسه بین مقدار ستون و طیف وسیعی از ارزش های دیگر.
SQL ANY Operator
ANY
اپراتور:
- در نتیجه مقدار بولین را برمی گرداند
- اگر هریک از مقادیر subquery شرایط را برآورده کند TRUE را برمی گرداند
ANY
این بدان معناست که اگر عملیات برای هر یک از مقادیر محدوده درست باشد ، شرط صادق خواهد بود.
هر نحو
SELECT column_name(s) FROM table_name WHERE column_name operator ANY (SELECT column_name FROM table_name WHERE condition);
توجه: اپراتور باید عملگر مقایسه استاندارد باشد (=، <>، =،>،> =، <، یا <=!).
اپراتور SQL ALL
ALL
اپراتور:
- در نتیجه مقدار بولین را برمی گرداند
- اگر همه مقادیر subquery شرایط را برآورده کنند TRUE را برمی گرداند
- با
SELECT
،WHERE
وHAVING
دستورات استفاده می شود
ALL
این بدان معناست که این شرط تنها در صورتی صادق خواهد بود که عملیات برای همه مقادیر محدوده صادق باشد.
ALL نحو با SELECT
SELECT ALL column_name(s) FROM table_name WHERE condition;
ALL Syntax با WHERE یا HAVING
SELECT column_name(s) FROM table_name WHERE column_name operator ALL (SELECT column_name FROM table_name WHERE condition);
توجه: اپراتور باید عملگر مقایسه استاندارد باشد (=، <>، =،>،> =، <، یا <=!).
پایگاه داده نسخه ی نمایشی
در زیر مجموعه ای از جدول “محصولات” در پایگاه داده نمونه Northwind آمده است:
SQL ANY نمونه ها
دستور SQL زیر لیست ProductName را در صورت یافتن هرگونه رکورد در جدول OrderDetails دارای مقدار برابر با 10 (این مقدار TRUE را باز می گرداند زیرا ستون مقدار مقادیر 10 دارد):
مثال
SELECT ProductName FROM Products WHERE ProductID = ANY (SELECT ProductID FROM OrderDetails WHERE Quantity = 10);
در صورت مشاهده هرگونه رکورد در جدول OrderDetails که مقدار آن بزرگتر از 99 است ، عبارت SQL زیر لیست ProductName را فهرست می کند (این مقدار TRUE را باز می گرداند زیرا ستون مقدار مقادیری بزرگتر از 99 دارد):
مثال
SELECT ProductName FROM Products WHERE ProductID = ANY (SELECT ProductID FROM OrderDetails WHERE Quantity > 99);
دستور SQL زیر لیست ProductName را در صورت یافتن هرگونه رکورد در جدول OrderDetails دارای مقدار بزرگتر از 1000 می داند (این امر FALSE را باز می گرداند زیرا ستون Quantity مقادیری بزرگتر از 1000 ندارد):
مثال
SELECT ProductName FROM Products WHERE ProductID = ANY (SELECT ProductID FROM OrderDetails WHERE Quantity > 1000);
SQL ALL نمونه ها
دستور SQL زیر همه نام محصولات را لیست می کند:
مثال
SELECT ALL ProductName FROM Products WHERE TRUE;
دستور SQL زیر لیست ProductName را ذکر می کند اگر همه رکوردهای جدول OrderDetails دارای مقدار برابر با 10 باشد. این البته FALSE را باز می گرداند زیرا ستون Quantity دارای مقادیر مختلف (نه تنها مقدار 10) است:
مثال
SELECT ProductName FROM Products WHERE ProductID = ALL (SELECT ProductID FROM OrderDetails WHERE Quantity = 10);
0 دیدگاه