Oracle Ders 31 – SubQueries – 02 Multiple Row SubQuery

Merhaba Arkadaslar,
Bu yazimda SubQuery (alt sorgu) konusuna devam edecegim. Bir onceki yazimda Single Row SubQuery konusundan bahsetmistim.Bu yazimda Multiple Row Subquery konusunu inceleyecegiz.
Hatirlayacak olursak Single Row Subquery de alt sorgunun(subquery) tek bir deger/alan dondurmesi gerekmekteydi. Birden fazla deger/alan dondugunde hata ile karsilasmistik. Multiple Row Subquery yapisinda ise birden fazla sonuc/alan subquery(alt sorgu) sonucunda donebilir.
Burada 3 tane operatorden bahsedecegim ;

  • IN
  • ALL
  • ANY

IN Operatoru
IN operatorunu daha once incelemistik, IN operatoru aslinda OR (veya) anlamanina gelmektedir.

Sorgumuzu inceleyecek olursak, altsorguda (subquery) her kategori icin maksimum satis fiyati bilgisini getirdik. where sartimizda ise bir kitabin satis fiyatinin , alt sorgu ile donen herhangi bir satis fiyatina esit olanlari getirmesini soyledik.

select title,retail,category
from books
where retail IN (select max (retail)
                 from books
                 group by category)
order by category;

oracle ders 31 multiple row 1

ALL ve ANY Operatorleri
Bu 2 operator karsilastirma operatorleri ( > < = ) ile kombine edilebilir.
>ALL , alt sorgu sonucu donen tum alan/degerlerden buyuk sonuclar
<ALL , alt sorgu sonucu donen tum alan/degerlerden kucuk sonuclar
<ANY, alt sorgu sonucu donen en az bir alan/degerden kucuk sonuclar
>ANY, alt sorgu sonucu donen en az bir alan/degerden buyuk sonuclar

Sorgumuzu inceleyecek olursak, kategorisi COOKING olan kitaplar arasinda en buyuk satis fiyatina (max(retail) sahip kitaptan buyuk kitaplarin bilgisini sorguluyoruz.
COOKING kategorisindeki en buyuk satis fiyatina sahip kitap ;

select max (retail)from books
where category = 'COOKING';  //28.75
select title,retail,category
from books
where retail >ALL (select max (retail)
                 from books
                 where category = 'COOKING');

oracle ders 31 multiple row 2

Asagidaki sorguda ise <ALL operatorunu kullandik.

select title,retail,category
from books
where retail <ALL (select max (retail)
                 from books
                 where category = 'COOKING');

oracle ders 31 multiple row 3

Asagidaki sorguda ise kategorisi CHILDREN olan kitaplarin herhangi birinden daha pahali kitaplarin bilgisini getirdik

select title,retail,category
from books
where retail >ANY (select max (retail)
                 from books
                 where category = 'CHILDREN');

Yazimi burada sonlandiriyorum.

Herkese Bol Javali Gunler dilerim.
Be an oracle man , import java.*;
Levent Erguder
injavawetrust

 

 

Print Friendly, PDF & Email

Leave a Reply

Your email address will not be published. Required fields are marked *