Основы SQL


КОГДА ПОДЗАПРОС ВОЗВРАЩАЕТСЯ ПУСТЫМ?


Одно существенное различие между ALL и ANY - способ действия в ситуации, когда подзапрос не возвращает никаких значений. В принципе всякий раз, когда допустимый подзапрос не в состоянии сделать вывод, ALL автоматически правилен, а ANY автоматически неправилен. Это означает, что следующий запрос

SELECT * FROM Customers WHERE rating > ANY (SELECT rating FROM Customers WHERE city = Boston);

не произведет никакого вывода, в то время как запрос

SELECT FROM Customers WHERE rating > ALL (SELECT rating FROM Customers WHERE city = 'Boston');

выведет всю таблицу Заказчиков. Когда нет никаких заказчиков в Boston, естественно, ни одно из этих сравнений не имеет значения.




Начало  Назад  Вперед