Перейти до основного
Підтримка
Вхід
Вхід за допомогою облікового запису Microsoft
Увійдіть або створіть обліковий запис.
Вітаємо,
Виберіть інший обліковий запис.
У вас є кілька облікових записів
Виберіть обліковий запис, за допомогою якого потрібно ввійти.
Предикати ALL, DISTINCT, DISTINCTROW, TOP

Визначає записи, вибрані за допомогою запитів SQL.

Синтаксис

SELECT [УСІ | DISTINCT | DISTINCTROW | [TOP n [PERCENT]]]
ТАБЛИЦЯ FROM

Інструкція SELECT, що містить ці предикати, складається з таких частин:

Частина

Опис

ALL

Припускається, що якщо ви не включите один із предикатів. Обробник баз даних Microsoft Access вибирає всі записи, які відповідають умовам в інструкції SQL. Наведені нижче два приклади еквівалентні та повертають всі записи з таблиці "Працівники"."

SELECT ALL *
FROM Employees
ORDER BY EmployeeID;
SELECT *
FROM Employees
ORDER BY EmployeeID;

DISTINCT

Не передає записи, які містять повторювані дані у вибраних полях. Для включення до результатів запиту значення для кожного поля, указаного в інструкції SELECT, мають бути унікальними. Наприклад, кілька працівників, перелічених у таблиці "Працівники", можуть мати однакові прізвища. Якщо в полі LastName містяться два записи Smith, наведена нижче інструкція SQL повертає лише один запис, який містить Ім'я Сміта:

SELECT DISTINCT LastName
FROM Employees;

Якщо пропустити DISTINCT, цей запит поверне обидва записи Smith.

Якщо речення SELECT містить кілька полів, поєднання значень з усіх полів має бути унікальним для певного запису для включення в результати.

Результати запиту, у якому використовується функція DISTINCT, не оновлюються та не відображають подальші зміни, внесені іншими користувачами.

DISTINCTROW

Не оминає дані на основі всіх повторюваних записів, а не лише повторюваних полів. Наприклад, можна створити запит, який об'єднує таблиці "Клієнти" та "Замовлення" в полі CustomerID. Таблиця "Клієнти" не містить повторюваних полів CustomerID, але таблиця "Замовлення" виконується, оскільки кожен клієнт може мати багато замовлень. У наведеній нижче інструкції SQL показано, як за допомогою функції DISTINCTROW створити список компаній, які мають принаймні одне замовлення, але без будь-яких подробиць про ці замовлення:

SELECT DISTINCTROW CompanyName
FROM Customers INNER JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
ORDER BY CompanyName;

Якщо пропустити DISTINCTROW, цей запит створює кілька рядків для кожної компанії, яка має кілька замовлень.

ФУНКЦІЯ DISTINCTROW діє, лише коли ви вибираєте поля з деяких (але не всіх) таблиць, які використовуються в запиті. Функція DISTINCTROW ігнорується, якщо запит містить лише одну таблицю або виводите поля з усіх таблиць.

TOP n [PERCENT]

Повертає певну кількість записів, які перебувають у верхній або нижній частині діапазону, визначеного реченням ORDER BY. Припустімо, ви хочете, щоб імена 25 кращих учнів класу 1994 року:

SELECT TOP 25
FirstName, LastName
FROM Students
WHERE GraduationYear = 2003
ORDER BY GradePointAverage DESC;

Якщо не додати речення ORDER BY, запит поверне довільний набір із 25 записів із таблиці "Студенти", які відповідають реченню WHERE.

Предикат TOP не вибирає рівні значення. У попередньому прикладі, якщо двадцять п'ятий і двадцять шостий середні показники найвищого класу однакові, запит поверне 26 записів.

Зарезервоване слово PERCENT також можна використовувати, щоб повернути певний відсоток записів, які перебувають у верхній або нижній частині діапазону, визначеного реченням ORDER BY. Припустімо, що замість 25 найкращих студентів потрібно отримати 10 відсотків класу знизу:

SELECT TOP 10 PERCENT
FirstName, LastName
FROM Students
WHERE GraduationYear = 2003
ORDER BY GradePointAverage ASC;

Предикат ASC визначає повернення нижніх значень. Значення після top має бути цілим числом без підпису.

Top не впливає на те, чи можна оновити запит.

таблиця

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



Потрібна додаткова довідка?

Потрібні додаткові параметри?

Ознайомтеся з перевагами передплати, перегляньте навчальні курси, дізнайтесь, як захистити свій пристрій тощо.

Спільноти допомагають ставити запитання й відповідати на них, надавати відгуки та дізнаватися думки висококваліфікованих експертів.

Чи ця інформація була корисною?

Наскільки ви задоволені якістю мови?
Що вплинуло на ваші враження?
Натиснувши кнопку "Надіслати", ви надасте свій відгук для покращення продуктів і служб Microsoft. Ваш ІТ-адміністратор зможе збирати ці дані. Декларація про конфіденційність.

Дякуємо за відгук!

×