HAVING ifodasida faqat agregat SELECT ifodasida ko‘rsatilgan
funksiyalardan yoki GROUP BY ifodasida ko‘rsatilgan
maydonlardan
foydalanish mumkin. Ulardan siz tashqi ilova sifatida foydalanishingiz
mumkin.
Buning sababi shuki, HAVING tashqi so‘rovdagi satrlar uchun
emas, guruhlar uchun baholanadi. Shuning uchun ostki so‘rov bir marta satr
uchun emas, guruh uchun bajariladi.
EXISTS operatoridan foydalanish.
EXISTS – bu “TRUE” yoki “FALSE” qaytaruvchi operatordir. Bu shuni
bildiradiki, u predikatda avtonom
yoki mantiqiy operatorlar AND, OR va
NOT yordamida tuzilgan mantiqiy ifodalar kombinatsiya bilan qo‘llanilishi
mumkin. Agar
u ixtiyoriy natija hosil qilsa, ostki so‘rovni “TRUE” deb
baholaydi, aks holda “FALSE” deb baholaydi.
Misol: Agar buyurtmachilardan juda bo‘lmasa bittasi San Jose shaxrida
yashasa, buyurtmachilar jadvalidagi ma’lumotlarni chiqaring.
SELECT CNum, CName, City FROM Customers WHERE
EXISTS ( SELECT * FROM Customers WHERE City = 'San Jose' );
EXISTS ni faqat sodda ostki so‘rov bilan emas, balki bog‘langan so‘rov
bilan ishlatish mumkin. Bu holda EXISTS ichki ostki so‘rovni tashqining
har bir satri uchun tekshiradi.