Зарезервированные слова DISTINCTROW и DISTINCT
Зарезервированные слова
DISTINCTROW и DISTINCT
Зарезервированные слова DISTINCTROW и DISTINCT в инструкции SELECT Jet SQL позволяют исключить из результирующего множества повторяющиеся строки. Разница между этими словами состоит в том, как при их использовании определяются повторяющиеся записи.
Если в инструкции SELECT используется слово DISTINCTROW, то для сравнения записей применяются все поля исходной таблицы, независимо от того, какие из этих полей включены в запрос.
Если в инструкцию SELECT входит слово DISTINCT, то для сравнения записей используются данные в строках результирующего множества запроса, т. е. только те поля, которые включены в запрос.
Замечание
Модификаторы могут использоваться не только в инструкции SELECT, но также и в запросах на добавление записей и на создание таблицы.
Для того чтобы понять, как влияет включение этих слов в запрос на его результат, построим запрос, который будет показывать, какие товары приобрел каждый клиент:
-
Создайте новый запрос в базе данных "Борей". Для этого раскройте список запросов окна базы данных и нажмите кнопку
Создать
(New Query). В списке диалогового окна
Новый запрос
(New Query) выделите значение
Конструктор
(Design View) и нажмите кнопку ОК.
-
Добавьте в запрос таблицы "Клиенты" (Customers), "Заказы" (Orders), "Заказано" (Orders Details) и "Товары" (Products). Access автоматически создает необходимые связи между таблицами.
-
Перетащите поле "Название" (CompanyName) из списка полей таблицы "Клиенты" в первый столбец бланка запроса. Выделите ячейку
Сортировка
(Sort) и выберите значение
По возрастанию
(Ascending).
-
Перетащите поле "Марка" (ProductName) из списка полей таблицы "Товары" (Products) во второй столбец бланка запроса. Задайте в этом столбце также сортировку по возрастанию.
-
Нажмите на панели инструментов кнопку
Запуск
(Run) для выполнения запроса.
Вы должны получить результирующее множество, которое содержит 2169 записей. При этом те клиенты, которые не сделали ни одного заказа, в результирующее множество .не попадут, однако клиенты, которые заказывали один и тот же товар несколько раз, могут попасть в таблицу несколько раз. Теперь добавим в инструкцию SQI, SELECT слово DISTINCTROW для зтого:
-
Выберите команду меню
Вид, Режим SQL
(View, SQL View) или щелкните по стрелке на кнопке
Вид
(View) на панели управления и выберите элемент
Режим SQL
(SQL View). Откроется диалоговое окно, в котором выведена инструкция SQL, соответствующая построенному запросу.
-
Введите слово DISTINCTROW сразу после слова SELECT. Запрос должен выглядеть гак, как показано на рис. 8.58.
-
Нажмите кнопку
Запуск
(Run). Результирующее множество запроса будет включать 1695 записей.
-
Снова выполните команду
Вид, Режим SQL
(View, SQL Mode) и замените в инструкции SQL СЛОВО DISTINCTRTOW СЛОВОМ DISTINCT.
-
Нажмите кнопку
Запуск
(Run). Результирующее множество запроса содержит те же 1695 строк, что и при использовании ключевого слова DISTINCTROW.
Содержание раздела