Предикати ALL, DISTINCT, DISTINCTROW и TOP

Важно : Тази статия е преведена машинно – вижте отказа от отговорност. Английската версия на тази статия за справка можете да намерите тук .

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

Синтаксис

ИЗБЕРЕТЕ [ВСИЧКИ | ОТДЕЛНО | DISTINCTROW | [Първите n [%]]]
От таблица

Select, съдържаща тези предикати има следните части:

Част

Описание

ALL

Приема, ако не включите един от предикати. База данни на Microsoft Access избира всички записи, които отговарят на условията в SQL команда. Следните два примера са еквивалентни и да върне всички записи от таблицата служители:

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

ОТДЕЛНО

Изпуска записи, които съдържат дублирани данни в избраните полета. За да бъде включен в резултатите от заявката, стойностите за всяко поле, изброени в командата Select трябва да бъде уникална. Например няколко служители, изброени в таблица на служители може да има същия фамилно име. Ако двата записа съдържат Smith в полето "фамилия", следната SQL команда връща само един запис, който съдържа Smith:

SELECT DISTINCT LastName
FROM Employees;

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

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

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

DISTINCTROW

Изпуска данни на базата на цялата дублирани записи, не само дублирани полета. Например можете да създадете заявка, която се присъединява към клиенти и поръчки таблиците в полето CustomerID. Таблица "клиенти" не съдържа дублирани CustomerID полета, но таблицата Orders прави, защото всеки клиент може да има много поръчки. Следната SQL команда показва как можете да използвате DISTINCTROW се получава списък на фирми, които имат поне един ред, но без никакви подробности за тези поръчки:

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

Ако изпуснете DISTINCTROW, тази заявка дава няколко реда за всяка компания, която има повече от един ред.

DISTINCTROW има ефект, само когато изберете полета от някои, но не всички, на таблиците, използвани в заявката. DISTINCTROW се игнорира, ако заявката ви включва само една таблица или ако извеждате полета от всички таблици.

ПЪРВИТЕ n [%]

Връща определен брой записи, които попадат в горния или долния край на диапазона, зададен с клауза ORDER BY. Да предположим, че искате имената на горната 25 ученици от класа на г.:

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

Ако не включите клауза ORDER BY, заявката ще върне произволна поредица от 25 записи от таблицата ученици, които отговарят на клаузата WHERE.

ГОРНАТА предикат не изберете между еднакви стойности. В предишния пример ако двадесет и пети и двадесет и шестата най-висока степен средно точка са еднакви, заявката ще върне 26 записи.

Можете също да използвате ПРОЦЕНТЕН запазена дума, за да се върнете на определен процент от записите, които попадат в горната или долната част на диапазона, зададен с клауза ORDER BY. Да предположим, вместо най-горе 25 студенти, че искате дъното 10 процента от клас:

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

ASC на първоначалния указва връщане на последните стойности. Стойността, която следва най-горе трябва да бъде цяло без знак.

Най-горе не засяга дали заявката е обновяемо.

таблица

Името на таблицата, от която са извлечени записите.



Забележка : Отказ от отговорност за машинен превод: Тази статия е преведена от компютърна система без човешка намеса. Microsoft предлага тези машинни преводи, за да помогне на потребителите, които не говорят английски, да се възползват от съдържанието за продукти, услуги и технологии на Microsoft. Тъй като статията е преведена машинно, е възможно да съдържа грешки в речника, синтаксиса и граматиката.

Споделяне Facebook Facebook Twitter Twitter Имейл Имейл

Беше ли полезна тази информация?

Чудесно! Друга обратна връзка?

Как можем да подобрим това?

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

×