Пересечение и разность стр. 4 |
||
Тот факт, что операция EXCEPT убирает из результата строки-дубликаты, даёт нам еще один способ исключения дубликатов. Продемонстрируем имеющиеся варианты на примере следующей задачи (используется база данных "Окраска"). Перечислить цвета имеющихся баллончиков с краской. 1. Использование DISTINCT 2. Использование GROUP BY 3. Использование EXCEPT Идея решения состоит в том, чтобы "вычесть" из имеющегося набора несуществующий цвет, например, 'Z': Поскольку столбец v_color не допускает NULL-значений, последний запрос можно переписать в универсальной форме: SQL Server оценивает стоимость всех этих запросов равной. В этом нет ничего удивительного в силу того, что каждый из запросов выполняет чтение таблицы и сортировку, а это наиболее "тяжелые" операции плана запроса. |