SQL ANY va ALL operatorlari


baham ko'ring

SQL ANY operatori

ANY operatori qiymatni pastki so‘rov tomonidan qaytarilgan har bir qiymatga solishtirish uchun ishlatiladi.

Agar quyi so‘rov natijalari to‘plamidagi kamida bitta qiymat shartga javob bersa, ANY operatori TRUE qiymatini beradi.

ANY sintaksisi

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

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


Demo ma’lumotlar bazasi

Quyida Northwind namunaviy ma’lumotlar bazasidagi "Products" jadvalidan tanlanma keltirilgan:

ProductID ProductName Price
1 Chais 18.00
2 Chang 19.00
3 Aniseed Syrup 10.00
4 Chef Anton's Cajun Seasoning 22.00

Va tanlanma "OrderDetails" jadvali:

OrderDetailID ProductID Quantity
1 11 12
2 42 10
3 72 5
4 14 9


SQL ANY misollari

Quyidagi SQL, agar "OrderDetails" jadvalida Quantity qiymati 10 ga teng bo‘lgan BIRORTA (ANY) yozuv topilsa, ProductName’ni qaytaradi (bu TRUE qaytaradi, chunki Quantity ustunida 10 ga teng qiymatlar bor):

Misol

SELECT ProductName FROM Products
WHERE ProductID = ANY (
  SELECT ProductID
  FROM OrderDetails
  WHERE Quantity = 10
);
O‘zingiz sinab ko‘ring »

Quyidagi SQL, agar "OrderDetails" jadvalida Quantity qiymati 99 dan katta bo‘lgan BIRORTA (ANY) yozuv topilsa, ProductName’ni qaytaradi (bu TRUE qaytaradi, chunki Quantity ustunida 99 dan katta qiymatlar bor):

Misol

SELECT ProductName FROM Products
WHERE ProductID = ANY (
  SELECT ProductID
  FROM OrderDetails
  WHERE Quantity > 99
);
O‘zingiz sinab ko‘ring »

Quyidagi SQL, agar "OrderDetails" jadvalida Quantity qiymati 1000 dan katta bo‘lgan BIRORTA (ANY) yozuv topilsa, ProductName’ni qaytaradi (bu FALSE qaytaradi, chunki Quantity ustunida 1000 dan katta qiymat yo‘q):

Misol

SELECT ProductName FROM Products
WHERE ProductID = ANY (
  SELECT ProductID
  FROM OrderDetails
  WHERE Quantity > 1000
);
O‘zingiz sinab ko‘ring »

W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!