loading..
Русский    English
20:12
листать

Пересечение и разность стр. 4

Тот факт, что операция EXCEPT убирает из результата строки-дубликаты, даёт нам еще один способ исключения дубликатов. Продемонстрируем имеющиеся варианты на примере следующей задачи (используется база данных "Окраска").

Перечислить цвета имеющихся баллончиков с краской.

1. Использование DISTINCT

Консоль
Выполнить
  1. SELECT DISTINCT v_color FROM utV;

2. Использование GROUP BY

Консоль
Выполнить
  1. SELECT v_color FROM utV GROUP BY v_color;

3. Использование EXCEPT

Идея решения состоит в том, чтобы "вычесть" из имеющегося набора несуществующий цвет, например, 'Z':

Консоль
Выполнить
  1. SELECT v_color FROM utV
  2. EXCEPT
  3. SELECT 'Z';

Поскольку столбец v_color не допускает NULL-значений, последний запрос можно переписать в универсальной форме:

Консоль
Выполнить
  1. SELECT v_color FROM utV
  2. EXCEPT
  3. SELECT NULL;

SQL Server оценивает стоимость всех этих запросов равной. В этом нет ничего удивительного в силу того, что каждый из запросов выполняет чтение таблицы и сортировку, а это наиболее "тяжелые" операции плана запроса.


Bookmark and Share
Страницы: 1 2 3 4
Тэги:
ALL AND AUTO_INCREMENT AVG battles CASE CAST CHAR CHARINDEX CHECK classes COALESCE CONSTRAINT Convert COUNT CROSS APPLY CTE DATEADD DATEDIFF DATENAME DATEPART DATETIME DDL DEFAULT DELETE DISTINCT DML EXCEPT EXISTS EXTRACT FOREIGN KEY FROM FULL JOIN GROUP BY Guadalcanal HAVING IDENTITY IN INFORMATION_SCHEMA INNER JOIN insert INTERSECT IS NOT NULL IS NULL ISNULL laptop LEFT LEFT OUTER JOIN LEN maker Больше тэгов
Учебник обновлялся
месяц назад
©SQL-EX,2008 [Развитие] [Связь] [О проекте] [Ссылки] [Team]
Перепечатка материалов сайта возможна только с разрешения автора.