Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
!!ЛЕКЦІЇ_від_23.04.2013.docx
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
436 Кб
Скачать
☆

3. Речення having

Визначає, які згруповані записи відображатимуться в операторі SELECT із реченням GROUP BY. Після групування записів за допомогою речення GROUP BY речення HAVING відобразить усі записи, згруповані реченням GROUP BY, які відповідають умовам речення HAVING.

Синтаксис

SELECT список_полів FROM таблиця WHERE критерії_вибору GROUP BY список_полів_групи [HAVING критерії_групи]

Оператор SELECT, яка містить речення HAVING, складається з таких частин:

Частина

Опис

список_полів

Ім'я поля або полів, які потрібно отримати разом із будь-якими псевдонімами полів, агрегатними функціями SQL, предикатами вибору (ALL, DISTINCT, DISTINCTROW або TOP) або іншими параметрами оператора SELECT.

таблиця

Ім'я таблиці, з якої завантажуються записи.

критерії_вибору

Критерії вибору. Якщо оператор містить речення WHERE, після застосування його умов до записів обробник баз даних Microsoft Access згрупує значення.

список_полів_групи

Імена полів (не більше 10), які використовуються для групування записів. Порядок імен полів у списку_полів_групи визначає рівні групування — від найвищого до найнижчого.

критерії_групи

Вираз, що визначає, які згруповані записи потрібно відобразити.

Речення HAVING не є обов'язковим.

Речення HAVING схоже на речення WHERE, яке визначає, які записи вибиратимуться. Після групування записів за допомогою речення GROUP BY речення HAVING визначає, які записи відображатимуться:

SELECT CategoryID,

Sum(UnitsInStock)

FROM Products

GROUP BY CategoryID

HAVING Sum(UnitsInStock) > 100 And Like "BOS*";

Речення HAVING може містити до 40 виразів, зв'язаних логічними операторами, наприклад, І та АБО.

  1. Речення order by

Сортує повернуті запитом записи у вказаному полі або полях за зростанням або спаданням.

Синтаксис

SELECT список_полів FROM таблиця WHERE критерії_вибору [ORDER BY поле1 [ASC | DESC ][, поле2 [ASC | DESC ]][, ...]]]

Оператор SELECT, який містить речення ORDER BY, складається з таких частин:

Частина

Опис

список_полів

Ім’я поля або полів, які потрібно отримати разом із будь-якими псевдонімами полів, агрегатними SQL-функціями, предикатами вибору (ALL, DISTINCT, DISTINCTROW або TOP) або іншими параметрами оператора SELECT.

таблиця

Ім'я таблиці, записи якої отримуються.

критерії_вибору

Критерії вибору. Якщо оператор містить речення WHERE, після застосування його умов до записів обробник баз даних Microsoft Access упорядковує значення.

поле1, поле2

Імена полів, за якими буде відсортовано записи.

Речення ORDER BY не є обов’язковим. Однак, речення ORDER BY необхідно використати, якщо потрібно відобразити дані в порядку сортування.

За промовчанням використовується порядок сортування за зростанням (від A до Z, від 0 до 9). У цих прикладах імена працівників відсортовано за прізвищами:

SELECT Прізвище, Ім’я

FROM Працівники

ORDER BY Прізвище;

SELECT Прізвище, Ім’я

FROM Працівники

ORDER BY Прізвище ASC;

Щоб відсортувати поля за спаданням (від Z до A, від 9 до 0), додайте зарезервоване слово DESC до імен полів, які потрібно відсортувати за спаданням. У цьому прикладі показано сортування заробітних плат за спаданням:

SELECT Прізвище, Зарплатня

FROM Працівники

ORDER BY Зарплатня DESC, Прізвище;

Якщо в реченні ORDER BY указано поле, яке містить дані типу Memo або Об’єкт OLE, виникає помилка. Обробник баз даних Microsoft Access не сортує поля цих типів.

Речення ORDER BY зазвичай є останнім елементом в SQL-операторі.

У речення ORDER BY можна включити додаткові поля. Спочатку записи буде відсортовано за полем, яке вказано першим за реченням ORDER BY. Записи з однаковими значеннями відтак буде відсортовано за значенням поля, яке вказано другим, тощо.