ANY ve ALL komutları bir WHERE veya HAVING ifadeleri ile kullanılır. ANY komutu, alt sorgu değerinden herhangi biri koşulu karşılıyorsa true döndürür.
ALL operatörü, tüm alt sorgu değerleri koşulu karşılıyorsa true döndürür.
ANY komutu kullanımı:
SELECT sütun(s)
FROM tablo_adı
WHERE sütun operator ANY
(SELECT sütun FROM tablo_adı WHERE koşul);
ALL komutu kullanımı:
SELECT sütun (s)
FROM tablo_adı
WHERE sütun operator ALL
(SELECT sütun FROM tablo_adı WHERE koşul);
NOT: Operatör standart karşılama operatörüdür.(=, <>, =<, =>, <=!)
UrunID |
UrunAdi |
KategoriID |
TedarikID |
Adet |
Fiyat |
TedarikYeri |
1 |
Süt |
1 |
1 |
45 |
115 |
Kütahya |
2 |
Su |
1 |
2 |
34 |
46 |
Bursa |
3 |
Meşrubat |
1 |
3 |
53 |
90 |
İzmir |
4 |
Bal |
2 |
4 |
24 |
200 |
Muğla |
SiparisDetay |
UrunID |
SiparisID |
Adet |
1 |
3 |
5231 |
43 |
2 |
4 |
2346 |
10 |
3 |
2 |
5439 |
120 |
4 |
1 |
3532 |
70 |
Aşağıdaki SQL komutu True değerini döndürür SiparisDetayı tablosunda miktar=10 olan Herhangi bir veri bulursa ürün adları listeler.
SELECT UrunAdi
FROM Urunler
WHERE UrunID = ANY (SELECT UrunID FROM SiparisDetay WHERE Adet = 10);
Aşağıdaki SQL komutu True değerini döndürür SiparisDetayı tablosunda miktarı 99 den fazla olan Herhangi bir veri bulursa ürün adları listeler.
SELECT UrunAdi
FROM Urunler
WHERE UrunID = ANY (SELECT UrunID FROM SiparisDetay WHERE Adet >99);
Tüm alt sorgu değerleri koşulu karşılıyorsa ALL komutu true döndürür.
Aşağıdaki SQL komutu TRUE değerini döndürür ve SiparisDetay tablosundaki Tüm Kayıtların Miktar=10 olması durumunda ürün adları listeler. Koşul sağlanmazsa False döndürür.
SELECT UrunAdi
FROM Urunler
WHERE UrunID = ALL (SELECT UrunID FROM SiparisDetay WHERE Adet >99);
İçerik: YUSUF ERDOĞAN