ANY and ALL Operators

ANY va ALL operatorlari bir ustun qiymati va boshqa qiymatlar diapazoni o'rtasida solishtirishni amalga oshirishga imkon beradi.

SU

SQL ANY va ALL Operatorlari

ANY va ALL operatorlari bir ustun qiymati va boshqa qiymatlar diapazoni o'rtasida solishtirishni amalga oshirishga imkon beradi.

SQL ANY Operatori

ANY operatori:

  • natija sifatida boolean qiymatini qaytaradi
  • agar subso'rov qiymatlari shartga javob bersa, TRUE qaytaradi
  • ANY demak, shart qiymatlar diapazonidagi har qanday qiymat uchun haqiqiy bo'lsa, shart to'g'ri bo'ladi.

ANY Sintaksisi

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

Eslatma: Operator standart solishtirish operatori bo'lishi kerak (=, <>, !=, >, >=, <, yoki <=).

SQL ALL Operatori

ALL operatori:

  • natija sifatida boolean qiymatini qaytaradi
  • agar subso'rov qiymatlari shartga javob bersa, TRUE qaytaradi
  • SELECT, WHERE va HAVING bayonotlari bilan ishlatiladi
  • ALL demak, shart qiymatlar diapazonidagi barcha qiymatlar uchun haqiqiy bo'lsa, shart to'g'ri bo'ladi.

ALL Sintaksisi SELECT bilan

SELECT ALL column_name(s)
FROM table_name
WHERE condition;

ALL Sintaksisi WHERE yoki HAVING bilan

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

Eslatma

Operator standart solishtirish operatori bo'lishi kerak (=, <>, !=, >, >=, <, yoki <=)

Demo Ma'lumotlar Bazasi

Ushbu o'quv qo'llanmada Northwind namunaviy ma'lumotlar bazasidan "Products" jadvalidan bir tanlov:

ProductIDProductNameSupplierIDCategoryIDUnitPrice
1Chais1110 boxes x 20 bags18
2Chang1124 - 12 oz bottles19
3Aniseed Syrup1212 - 550 ml bottles10
4Chef Anton's Cajun Seasoning2248 - 6 oz jars22
5Chef Anton's Gumbo Mix2236 boxes21.35
6Grandma's Boysenberry Spread3212 - 8 oz jars25
7Uncle Bob's Organic Dried Pears3712 - 1 lb pkgs.30
8Northwoods Cranberry Sauce3212 - 12 oz jars40
9Mishi Kobe Niku4618 - 500 g pkgs.97

Va "OrderDetails" jadvalidan bir tanlov:

OrderDetailIDOrderIDProductIDQuantity
1102481112
2102484210
310248725
410249149
5102495140
6102504110
7102505135
8102506515
910251226
10102515715

SQL ANY Misollari

Quyidagi SQL bayonoti ProductName ni ro'yxatga oladi, agar OrderDetails jadvalida Quantity 10 ga teng bo'lgan har qanday yozuv mavjud bo'lsa (bu TRUE qaytaradi, chunki Quantity ustunida 10 ga teng ba'zi qiymatlar mavjud):

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

Quyidagi SQL bayonoti ProductName ni ro'yxatga oladi, agar OrderDetails jadvalida Quantity 99 dan katta bo'lgan har qanday yozuv mavjud bo'lsa (bu TRUE qaytaradi, chunki Quantity ustunida 99 dan katta ba'zi qiymatlar mavjud):

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

Quyidagi SQL bayonoti ProductName ni ro'yxatga oladi, agar OrderDetails jadvalida Quantity 1000 dan katta bo'lgan har qanday yozuv mavjud bo'lsa (bu FALSE qaytaradi, chunki Quantity ustunida 1000 dan katta qiymatlar mavjud emas):

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

SQL ALL Misollari

Quyidagi SQL bayonoti barcha mahsulot nomlarini ro'yxatga oladi:

SELECT ALL ProductName
FROM Products
WHERE TRUE;

Quyidagi SQL bayonoti ProductName ni ro'yxatga oladi, agar OrderDetails jadvalidagi barcha yozuvlarda Quantity 10 ga teng bo'lsa. Bu albatta FALSE qaytaradi, chunki Quantity ustunida turli xil qiymatlar mavjud (faqat 10 qiymati emas):

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

Ushbu sahifada

Xato haqida xabar berish