Predikati ALL, DISTINCT, DISTINCTROW, TOP

Predikati ALL, DISTINCT, DISTINCTROW, TOP

Određuje zapise odabrane u SQL upitima.

Sintaksa

ODABERITE [SVE | RAZLIČITA STRANICA | POSEBKATROW | [TOP n [%]]]
IZ tablice

Naredba SELECT koja sadrži te PREDIVE ima sljedeće dijelove:

Dio

Opis

ALL

Pretpostavlja se da ako ne uvrstite jedan od predista. Modul baze podataka programa Microsoft Access odabire sve zapise koji zadovoljavaju uvjete u SQL izjavi. Sljedeća dva primjera ekvivalentna su i vraćaju sve zapise iz tablice Zaposlenici:

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

DISTINCT

Zanemaruje zapise koji sadrže duplicirane podatke u odabranim poljima. Da biste bili uvršteni u rezultate upita, vrijednosti za svako polje navedeno u izjavi SELECT moraju biti jedinstvene. Na primjer, nekoliko zaposlenih navedenih u tablici zaposlenici može imati isto prezime. Ako dva zapisa sadrže Smitha u polju prezime, sljedeća SQL naredba vraća samo jedan zapis koji sadrži Smith:

SELECT DISTINCT LastName
FROM Employees;

Ako izostavite različita, ovaj upit vraća i Smith Records.

Ako uvjet SELECT sadrži više od jednog polja, kombinacija vrijednosti iz svih polja mora biti jedinstvena da bi se navedeni zapis uvrstio u rezultate.

Izlazni upit koji koristi zasebne značajke nije moguće ažurirati i ne odražava naknadne promjene koje su unijeli drugi korisnici.

DISTINCTROW

Zanemaruje podatke na temelju cijelih duplikata zapisa, a ne samo dupliciranih polja. Možete, primjerice, stvoriti upit koji pridružuje tablicama kupci i narudžbe u polju klijenta. Tablica Kupci ne sadrži duplicirane polja klijenta, ali tablica Narudžbe radi jer svaki korisnik može imati mnogo narudžbi. U sljedećoj SQL izjavi prikazuje se kako možete koristiti DISTINCTROW da biste stvorili popis tvrtki koje imaju barem jedan nalog, ali bez detalja o tim narudžbama:

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

Ako izostavite DISTINCTROW, ovaj upit stvara više redaka za svaku kompaniju koja sadrži više od jednog redoslijeda.

DISTINCTROW ima učinak samo kada odabirete polja iz nekih, ali ne i sve tablice koje se koriste u upitu. DISTINCTROW se zanemaruje ako upit sadrži samo jednu tablicu ili ako izlaznih polja iz svih tablica.

TOP n [posto]

Vraća određeni broj zapisa koji se nalaze na vrhu ili dnu raspona koji je naveden uvjetom ORDER BY. Pretpostavimo da želite imena najboljih 25 učenika iz klase 1994:

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

Ako ne uvrstite uvjet ORDER BY, upit će vratiti proizvoljni skup od 25 zapisa iz tablice učenici koji zadovoljavaju uvjet WHERE.

Predista vrha ne bira između jednakih vrijednosti. U prethodnom primjeru, ako je dvadeset i peti i dvadeset i šesti najviši prosjek prosjeci isti, upit će vratiti 26 zapisa.

Možete koristiti i rezerviranu riječ POSTOTKA da biste vratili određeni postotak zapisa koji se nalaze pri vrhu ili dnu raspona navedenog redoslijedom narudžbe. Pretpostavimo da, umjesto prvih 25 učenika, želite najnižih 10% razreda:

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

Predip ASC određuje povratak najnižih vrijednosti. Vrijednost koja slijedi na vrhu mora biti nepotpisani cijeli broj.

TOP ne utječe na to je li upit moguće ažurirati.

tablica

Naziv tablice iz koje se zapisi učitavaju.



Potrebna vam je dodatna pomoć?

Proširite svoje vještine korištenja sustava Office
Istražite osposobljavanje

Jesu li vam ove informacije bile korisne?

Hvala vam na povratnim informacijama!

Hvala vam na povratnim informacijama! Čini se da bi vam pomoglo kad bismo vas povezali s nekim od naših agenata podrške za Office.

×