SELECT * FROM Salepeople
WHERE SName < ANY ( SELECT CName FROM Customers );
ANY to‘la bir qiymatli emas. Misol: Rimdagi buyurtmachilarga ko‘ra yuqori reytinga ega
buyurtmachilarni topish.
SELECT * FROM Customers
WHERE Rating > ANY ( SELECT Rating FROM Customers
WHERE City = 'Rome' );
Ingliz tilida " ixtiyoriysidan katta ( bu erda City = Rome ) " baxolash quyidagicha talqin
qilinadi, bu baxolash qiymati xar bir City = Rome xoldagi baxolash qiymatidan katta bo‘lishi
kerak. SQL tilida ANY operatoridan foydalanilganda bunday emas. ANY to‘g‘ri deb baxolanadi
agar ostki so‘rov shartga mos keluvchi ixtiyoriy qiymat topsa. YUqorida ko‘rilgan misol 300 va
200 baxoli xamma buyurtmachilarni topadi, chunki 300>200 dlya Rimdagi Giovanni uchun va
200>100 Rimdagi Pereira uchun.
Soddaroq aytganda < ANY ifodasi eng katta tanlangan qiymatdan kichik qiymatni, > ANY -
eng kichik tanlangan qiymatdan katta qiymatni bildiradi.
ALL yordamida, predikat rost xisoblanadi, ostki so‘rov tanlagan xar bir qiymat tashqi so‘rov
predikatidagi shartga mos kelsa.
Misol: Rimdagi xar bir buyurtmachidan baxolari yuqori bo‘lgan buyurtmachilarni chiqaring.
SELECT * FROM Customers
WHERE Rating > ALL (SELECT Rating FROM Customers
WHERE City = 'Rome' );
Bu operator Rimdagi xamma buyurtmachilar baxolari qiymatlarini tekshiradi. SHundan so‘ng
Rimdagi xamma buyurtmachilardapn baxosi yuqori bo‘lgan buyurtmachilarni topadi. Rimda eng
yuqori baxo - Giovanni (200). Demak 200 dan yuqori qiymatlar olinadi.
ANY operatori uchun bo‘lgani kabi ALL operatori uchun xam IN va EXISTS
yordamida alternativ konstruksiyalar yaratish mumkin.
ALL asosan tengsizliklar bilan ishlatiladi, chunki qiymat "xammasi uchun teng " ostki so‘rov
natijasi bo‘lishi mumkin agag xamma natijalar bir xil bo‘lsa. SQL da < > ALL ifoda aslida ostki
so‘rov natijasining " xech qaysisiga teng emas " ma’noni bildiradi. Boshqacha qilib aytganda
proedikat rost agar berilgan qiymat ostki so‘rov natijalari orasida topilmagan bo‘lsa. Agar
oldingi misolda tenglik tengsizlikka almashtirilsa, reytingi 300 ga teng bo‘lgan xamma
buyurtmachilar chiqariladi, chunki ostki so‘rov 100 va 200 ga teng reytinglarni topgan.
ALL va ANY – orasidagi asosiy farq, ostki so‘rov xech qanday natija qaytarmagan xolatda
ko‘rinadi. Bu xolda ALL - avtomatik (“TRUE”) ga teng, ANY bo‘lsa avtomatik (“FALSE”) ga
teng.
Misol: Buyurtmachilar jadvali xammasini chiqarish
Do'stlaringiz bilan baham: |