Преминаване към основното съдържание
Поддръжка
Влизане с Microsoft
Влезте или създайте акаунт.
Здравейте,
Изберете друг акаунт.
Имате няколко акаунта
Изберете акаунта, с който искате да влезете.
Предикати ALL, DISTINCT, DISTINCTROW и TOP

Задава записите, избрани с SQL заявки.

Синтаксис

SELECT [ALL | РАЗЛИЧНИ | 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, трябва да са уникални. Например няколко служители, включени в таблицата "Служители", може да имат едно и също фамилно име. Ако два записа съдържат Smith в полето LastName, следната SQL команда връща само един запис, който съдържа Smith:

SELECT DISTINCT LastName
FROM Employees;

Ако изпуснете DISTINCT, тази заявка връща двата записа на Smith.

Ако клаузата SELECT съдържа повече от едно поле, комбинацията от стойности от всички полета трябва да бъде уникална за даден запис, за да бъде включен в резултатите.

Резултатът от заявка, която използва DISTINCT, не може да се актуализира и не отразява последващите промени, направени от други потребители.

DISTINCTROW

Пропуска данни, базирани на цели дублирани записи, а не само дублирани полета. Можете например да създадете заявка, която съединява таблиците "Клиенти" и "Поръчки" в полето "ИД на клиент". Таблицата "Клиенти" не съдържа дублирани полета 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. Вашият ИТ администратор ще може да събира тези данни. Декларация за поверителност.

Благодарим ви за обратната връзка!

×