PostgreSQL SUBQUERY ANY kullanımı

PostgreSQL SUBQUERY ANY kullanımı, İç içe sorgulardan elde edilen sonuçlardan biri çalışır. ANY ifadesi operatörler ile kullanılır .

ANY operatörü herhangi biri anlamını katar ve SOME ile aynıdır. Genel kullanımı aşağıdaki gibidir.

 

SELECT*FROM tablo_adi WHERE kolon_adi (<,=,>,=!,<>)ANY ( SELECT * FROM tablo_adi);

Bu kullanımda ihtiyaca göre ANY komutundan önce parantez içerisinde belirtilen parametrelere göre aşağıdaki açıklamalara göre kullanabiliriz.

Öğrenci isimlerinin olduğu tablomuz olsun ve bu tablomuzun ismi öğrenci_all olsun ve içerisinde  numarası ,adı ,soyadı bulunsun ve diğer tablomuz ogrenci_vf adında no,vize,final notları bulunsun ve  bu iki tabloyu kullanarak ögrenciler arasında vize notu 38 olanları bulalım. Bunu yapmak için  ANY komutunu beraber kullanalım.

 

SELECT*FROM ogrenci_all WHERE no > ANY(SELECT no FROM ogrenci_vf WHERE vize=38)  

Yukarıdaki plpgsql cümlesinde  ilk dış sorgumuzda ana tabloda ki  bütün kolonların gelmesini istiyoruz ve iki tabloda ortak olan no isminde ki kolunu WHERE koşulunda kullanarak subqueryimizi kullanmaya geçiyoruz ve ANY komutu yazıldıktan sonra parantez açıyoruz ve vizesi 38  olanları getir dediğimiz için koşulu subquery de belirtiyoruz.

Any kullanımı için ” > ”  ifadesini kullandık fakat birden fazla parametresi vardır. Bunları aşağıda belirttim  bunlarla ilgili kendi örneklerinizi bulup bu örnekler ile uygulamanızı tavsiye ederim. Unutmayın ki insanlar kendi uğraşı sonucunda yaptıklarını unutmazlar.

  • =ANY  : Subqueryden elde eldilen sonuç veya sonuçlardan  herhangi birine eşit olan kayıtları ifade eder.
  • >ANY : Subqueryden elde edilen sonuç veya sonuçlardan herhangi birinden büyük kayıtları ifade eder.
  • >=ANY : Subquery’nin çıkan  sonuçlardan herhangi birine eşit veya büyük kayıtları ifade eder.
  • <ANY: Subqueryden elde edilen sonuçlardan herhangi birinden küçük kayıtları ifade eder.
  • <=ANY: Subqueryden elde edilen sonuçlardan herhangi birine eşit veya küçük kayıtları ifade eder.
  • !=ANYveya <> ANY: Bu komut genelde kullanışsızdır çünkü bunun sebebi dönen kayıtlardan en az birinden farklı anlamını katar ve bu da bütün kayıtların getirilmesi anlamına gelir  yani SELECT*FROM ile aynı anlama geliyor diyebiliriz.

Loading