Postgresql Where Kullanımı

In ve not in, any, some, all

IN ve NOT IN Kullanımı


Bir veri kümesini belli bir alanında içeren kayıtları bulmak istediğimizde, IN sözcüğü kullanılırız.


Örnek:
1,5 ve 6 nolu kitapların ödünç hare¬ketlerini görmek için
 

SELECT *
FROM odunc
WHERE kitapNo=1 OR kitapNo=5 OR kitapNo=6;
 
 

Yerine 

SELECT *
FROM odunc
WHERE kitapNo IN(1,5,6);
 

 
Kullanımı daha kolaydır.

Örnek:
 Dışarıdaki kitapların numaralarını ödünç tablosundan çekecek bir sorgu yazalım(GeldiMi=0 olan kitaplar dışarıda olan kitaplar. Birileri tarafından ödünç alınmış ve henüz iade edilmemiş demektir.) 

SELECT kitapNo FROM odunc WHERE geldiMi=0

  Ve bu sorguyu, kitaplar tablosundan, karşılık gelen kitap numaralarını seçecek şekilde IN() komutuna girdi ürettirelim: 

SELECT *
FROM Kitap
WHERE kitapNo IN(
SELECT kitapNo FROM odunc WHERE geldiMi=0
);

  Örnek:
Aynı yöntem ile içerdeki kitaplarımızı bulalım:
İçerideki kitaplar, dışarıda olmayan kitaplardır. Bundan dolayı da yukarıda içerde kullandığımız sorgu aynen duracak ama bu sefer kitap numaraları bunlara eşit olmayan kitapların listesini bulacağız.

SELECT *
FROM Kitap
WHERE kitapNo NOT IN(
SELECT kitapNo FROM odunc WHERE geldiMi=0
);

  ANY, SOME, ALL Kullanımı

 

Bazı iç içe sorgularda, SOME, ANY veya ALL deyimi ile dışarıdaki SELECT ifadesinin seçeceği kayıtlar karşılaştırma kriterine göre kullanılabilir.
ANY veya SOME :Dışarıdaki SELECT ifadesi sonucunda çıkacak kayıtlar, içerideki SELECT ifadesi ile seçilen alan değerlerinden en az birine göre kıyası sağlıyorsa ( küçük,büyük, eşit, büyük eşit, küçük eşit) seçilir.

 

Örnek:
3,5 ve 11 nolu kitapların herhangi birinden kalın olan ve kitap no da 11’den büyük olan kitapların listesini bulalım: 

SELECT kitapNo,kitapAdi,sayfaSayisi
FROM Kitap
WHERE sayfaSayisi > ANY( SELECT sayfaSayisi
FROM Kitap
WHERE kitapNo IN(3,5,11)
)
AND kitapNo>11

 ALL: Dışarıdaki SELECT ifadesi sonucunda çıkacak kayıtlar, içerideki SELECT ifadesi
38 BYTE Veritabanı Programlama 1 ile seçilen alan değerlerin tümüne göre kıyası sağlıyorsa ( küçük,büyük, eşit, büyük eşit, küçük eşit) seçilir.

Örnek:
3,5 ve 11 nolu kitapların tamamından kalın olan ve kitap no da 11’den büyük olan kitapların listesini bulalım: 

SELECT kitapNo,kitapAdi,sayfaSayisi
FROM Kitap
WHERE sayfaSayisi > ALL( SELECT sayfaSayisi
FROM Kitap
WHERE kitapNo IN(3,5,11)
)
AND kitapNo>11

  Uğurcan Şahin

Yorumunuzu Ekleyin


Yükleniyor...
Yükleniyor...