SELECT * FROM Orders main WHERE NOT SNum = ( SELECT SNum FROM Customers WHERE CNum = main.CNum );
Asosiy so‘rov asoslangan jadvalga asoslanuvchi mutanosib so‘rovdan foydalanishingiz mumkin.
Misol: sotib olishlar buyurtmachilari uchun o‘rta qiymatdan yuqori bo‘lgan hamma buyurtmalarni topish.
SELECT * FROM Orders a WHERE AMT > ( SELECT AVG (AMT) FROM Orders b WHERE b.CNum = a.CNum );
HAVING operatoridan ostki so‘rovlarda foydalanilganidek, mutanosib ostki so‘rovlarda ham foydalanish mumkin. HAVING ifodasida mutanosib ostki so‘rovdan foydalanganda, HAVING o‘zida ishlatilishi mumkin bo‘lgan pozitsiyalarga tashqi ilovalarni cheklab qo‘yishingiz kerak. Chunki, 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.
ALL, ANY, SOME operatorlaridan foydalanish.
ANY, ALL, va SOME ostki so‘rovlarni argument sifatida qabul qiluvchi EXISTS operatorni eslatadi, lekin relyatsion operatorlar bilan birga ishlatilishi bilan farq qiladi. Bu tomondan ular ostki so‘rovlarga qo‘llaniluvchi IN operatorini eslatadi.
Misol: bir shaharda joylashgan sotuvchilar bilan buyurtmachilarni topish uchun ANY operatoridan foydalanish.
Do'stlaringiz bilan baham: |