Przejdź do głównej zawartości
Pomoc techniczna
Zaloguj się przy użyciu konta Microsoft
Zaloguj się lub utwórz konto.
Witaj,
Wybierz inne konto.
Masz wiele kont
Wybierz konto, za pomocą którego chcesz się zalogować.
Orzeczenia ALL, DISTINCT, DISTINCTROW i TOP

Określa rekordy zaznaczone za pomocą zapytań SQL.

Składnia

SELECT [ALL | DISTINCT | DISTINCTROW | [TOP n [PROCENT]]]
FROM tabela

Instrukcja SELECT zawierająca te predykaty składa się z następujących części:

Segment

Opis

ALL

Zakłada się, że jeśli nie uwzględnisz jednego z predykatów. Aparat bazy danych programu Microsoft Access wybiera wszystkie rekordy spełniające warunki w instrukcji SQL. Dwa poniższe przykłady są równoważne i zwracają wszystkie rekordy z tabeli Pracownicy:

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

DISTINCT

Pomija rekordy zawierające zduplikowane dane w wybranych polach. Aby uwzględnić je w wynikach zapytania, wartości dla każdego pola wymienionego w instrukcji SELECT muszą być unikatowe. Na przykład kilku pracowników wymienionych w tabeli Pracownicy może mieć takie samo nazwisko. Jeśli dwa rekordy zawierają ciąg Znaków Kowalski w polu Nazwisko, poniższa instrukcja SQL zwraca tylko jeden rekord zawierający ciąg Kowalski:

SELECT DISTINCT LastName
FROM Employees;

Jeśli funkcja DISTINCT zostanie pominięta, to zapytanie zwróci oba rekordy Smitha.

Jeśli klauzula SELECT zawiera więcej niż jedno pole, kombinacja wartości ze wszystkich pól musi być unikatowa, aby dany rekord został uwzględniony w wynikach.

Dane wyjściowe zapytania używającego funkcji DISTINCT nie są aktualizowane i nie odzwierciedlają kolejnych zmian wprowadzonych przez innych użytkowników.

DISTINCTROW

Pomija dane oparte na całych zduplikowanych rekordach, a nie tylko na zduplikowanych polach. Można na przykład utworzyć zapytanie łączące tabele Klienci i Zamówienia w polu IdentyfikatorKlienta. Tabela Klienci nie zawiera zduplikowanych pól CustomerID, ale tabela Zamówienia ma znaczenie, ponieważ każdy klient może mieć wiele zamówień. Poniższa instrukcja SQL pokazuje, jak za pomocą funkcji DISTINCTROW utworzyć listę firm, które mają co najmniej jedno zamówienie, ale bez żadnych szczegółów dotyczących tych zamówień:

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

Jeśli funkcja DISTINCTROW zostanie pominięta, to zapytanie tworzy wiele wierszy dla każdej firmy, która ma więcej niż jedno zamówienie.

Funkcja DISTINCTROW działa tylko wtedy, gdy wybierasz pola z niektórych( ale nie wszystkich) tabel użytych w zapytaniu. Funkcja DISTINCTROW jest ignorowana, jeśli zapytanie zawiera tylko jedną tabelę lub pola wyjściowe ze wszystkich tabel.

TOP n [PROCENT]

Zwraca pewną liczbę rekordów znajdujących się u góry lub u dołu zakresu określonego przez klauzulę ORDER BY. Załóżmy, że chcesz mieć imiona i nazwiska 25 najlepszych uczniów z klasy 1994:

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

Jeśli nie zostanie dołączona klauzula ORDER BY, zapytanie zwróci dowolny zestaw 25 rekordów z tabeli Uczniowie, które spełniają klauzulę WHERE.

Predykat TOP nie wybiera równych wartości. W poprzednim przykładzie, jeśli średnia z 25 i 26 punktów najwyższej klasy jest taka sama, zapytanie zwróci 26 rekordów.

Możesz również użyć słowa zastrzeżonego PERCENT, aby zwrócić określony procent rekordów znajdujących się u góry lub u dołu zakresu określonego przez klauzulę ORDER BY. Załóżmy, że zamiast 25 najlepszych uczniów chcesz mieć 10% najniższych poziomów zajęć:

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

Predykat ASC określa zwracane wartości najniższe. Wartość następująca po kolumnie TOP musi być niepodpisaną liczbą całkowitą.

Funkcja TOP nie ma wpływu na to, czy zapytanie można aktualizować.

tabela

Nazwa tabeli, z której są pobierane rekordy.



Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.

Czy te informacje były pomocne?

Jaka jest jakość języka?
Co wpłynęło na Twoje wrażenia?
Jeśli naciśniesz pozycję „Wyślij”, Twoja opinia zostanie użyta do ulepszania produktów i usług firmy Microsoft. Twój administrator IT będzie mógł gromadzić te dane. Oświadczenie o ochronie prywatności.

Dziękujemy za opinię!

×