٪۴۰ تخفیف تابستانه شروع شد! بزرگترین حراج سال ما

به ما بپیوندید

آموزش SQL ANY و همه اپراتورها

SQL ANY و همه اپراتورها ANYو ALLاپراتورهای اجازه می دهد شما را به انجام یک مقایسه بین مقدار ستون و طیف وسیعی از ارزش های دیگر. SQL ANY Operator ANYاپراتور: در نتیجه مقدار بولین را برمی گرداند اگر هریک از مقادیر…

محمد یوسفی

19 آگوست 2021

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 دیدگاه