Оператор ANY порівнює значення першої таблиці з усіма значеннями другої таблиці та повертає рядок, якщо є збіг з будь-яким значенням. Наприклад, якщо ми хочемо знайти вчителів, вік яких аналогічний віку вказаного учня, ми можемо використати:
|
1 2 3 4 5 6 |
SELECT * FROM Teachers WHERE age = ANY ( SELECT age FROM Students ); |
|
1 2 |
SELECT age FROM Students |
повертає всі дані віку з таблиці Students. А умова:
|
1 |
WHERE age = ANY (...) |
порівнює вік учнів (повертається від підзапиту) із віком вчителя. За наявності збігу вибирається відповідний рядок таблиці Teachers.

Оператор ALL в SQL
Оператор ALL порівнює значення першої таблиці з усіма значеннями другої таблиці та повертає рядок, якщо є збіг з усіма значеннями. Наприклад, якщо ми хочемо знайти вчителів, вік яких більше, ніж у всіх учнів, ми можемо використати:
|
1 2 3 4 5 6 |
SELECT * FROM Teachers WHERE age > ALL ( SELECT age FROM Students ); |
Підзапит:
|
1 2 |
SELECT age FROM Students |
повертає всі дані віку з таблиці Students. А умова:
|
1 |
WHERE age > ALL (...) |
порівнює вік учнів (повертається від підзапиту) із віком вчителя. Якщо вік вчителя більший, ніж вік усіх учнів, вибирається відповідний рядок таблиці Teachers.

Оператори ANY та ALL з операторами порівняння
Ми можемо використовувати будь-які оператори порівняння, такі як =, >, < та інші, з операторами ANY та ALL. Давайте розглянемо приклад, коли нам потрібні вчителі, вік яких менше, ніж у будь-якого учня:
|
1 2 3 4 5 6 |
SELECT * FROM Teachers WHERE age < ANY ( SELECT age FROM Students ); |
Тут ми вибираємо рядки з таблиці Teachers, якщо вік (age) у зовнішньому запиті менший за будь-який вік у підзапиті.


(16 оцінок, середня: 4,94 з 5)