Section Artikel
Operator SQL ANY dan ALL
Operator ANY dan ALL dapat digunakan dengan klausa WHERE atau HAVING.
Operator ANY akan mengembalikan true jika salah satu nilai subquery memenuhi kondisi.
Operator ALL akan mengembalikan true jika semua nilai subkueri memenuhi kondisi.
Syntax ANY
SELECT column_name(s) FROM table_name WHERE column_name operator ANY (SELECT column_name FROM table_name WHERE condition);
Syntax ALL
SELECT column_name(s) FROM table_name WHERE column_name operator ALL (SELECT column_name FROM table_name WHERE condition);
Catatan: Operator harus menjadi operator perbandingan standar (=, <>,! =,>,> =, <, Atau <=).
Contoh Database
Di bawah ini adalah pilihan dari tabel “Produk” di database contoh Northwind:
IdProduk | NamaProduk | IdSupplier | IdCategory | Unit | Harga |
---|---|---|---|---|---|
1 | Chais | 1 | 1 | 10 boxes x 20 bags | 18 |
2 | Chang | 1 | 1 | 24 – 12 oz bottles | 19 |
3 | Aniseed Syrup | 1 | 2 | 12 – 550 ml bottles | 10 |
4 | Chef Anton’s Cajun Seasoning | 2 | 2 | 48 – 6 oz jars | 22 |
5 | Chef Anton’s Gumbo Mix | 2 | 2 | 36 boxes | 21.35 |
Dan pilihan dari tabel “OrderDetails”:
IdOrderDetail | IdOrder | IdProduct | Quantity |
---|---|---|---|
1 | 10248 | 11 | 12 |
2 | 10248 | 42 | 10 |
3 | 10248 | 72 | 5 |
4 | 10249 | 14 | 9 |
5 | 10249 | 51 | 40 |
Contoh SQL ANY
Operator ANY akan mengembalikan TRUE jika salah satu nilai subkueri memenuhi ketentuan.
Pernyataan SQL berikut mengembalikan TRUE dan mencantumkan nama produk jika menemukan catatan ANY di tabel OrderDetails bahwa Quantity = 12:
Contoh
SELECT NamaProduk FROM Products WHERE IdProduct = ANY (SELECT IdProduct FROM OrderDetails WHERE Quantity = 12);
Pernyataan SQL berikut mengembalikan TRUE dan mencantumkan nama produk jika menemukan rekaman ANY di tabel OrderDetails bahwa kuantitas > 99:
Contoh
SELECT NamaProduk FROM Products WHERE IdProduct = ANY (SELECT IdProduct FROM OrderDetails WHERE Quantity > 99);
Contoh SQL ALL
Operator ALL akan mengembalikan TRUE jika semua nilai subkueri memenuhi kondisi.
Pernyataan SQL berikut mengembalikan TRUE dan mencantumkan nama produk jika ALL rekaman dalam tabel OrderDetails memiliki quantitas = 10 (jadi, contoh ini akan mengembalikan FALSE, karena tidak SEMUA rekaman dalam tabel OrderDetails memiliki quantitas= 10):
Contoh
SELECT NamaProduk FROM Products WHERE IdProduct = ALL (SELECT IdProduct FROM OrderDetails WHERE Quantity = 10);