Određuje zapise odabrane uz SQL upite.
Sintaksa
SELECT [SVE | DISTINCT | DISTINCTROW | [TOP n [PERCENT]]]
FROM tablicaNaredba SELECT koja sadrži te predikate sastoji se od sljedećih dijelova:
Dio |
Opis |
ALL |
Pretpostavlja se ako ne uvrstite jedan od predikata. Modul baze podataka programa Microsoft Access odabire sve zapise koji zadovoljavaju uvjete u SQL naredbi. Sljedeća su dva primjera ekvivalentna i vraćaju sve zapise iz tablice Zaposlenici:
|
DISTINCT |
Izograničen je zapis koji sadrži duplicirane podatke u odabranim poljima. Da bi se uvrstili u rezultate upita, vrijednosti za svako polje navedeno u naredbi SELECT moraju biti jedinstvene. Na primjer, nekoliko zaposlenika 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 Smitha:
Ako izostavite DISTINCT, ovaj upit vraća oba zapisa smitha. Ako uvjet SELECT sadrži više polja, kombinacija vrijednosti iz svih polja mora biti jedinstvena da bi se navedeni zapis uvrstili u rezultate. Izlaz upita koji koristi DISTINCT nije moguće ažurirati i ne odražava daljnje promjene koje su unijeli drugi korisnici. |
DISTINCTROW |
Izograničen je broj podataka na temelju cijelih dupliciranih zapisa, a ne samo na dupliciranim poljima. Možete, primjerice, stvoriti upit koji spaja tablice Kupci i Narudžbe u polju IDKupca. Tablica Kupci ne sadrži dvostruka polja IDKupca, ali tablica Narudžbe funkcionira jer svaki klijent može imati mnogo narudžbi. Sljedeća SQL naredba pokazuje kako koristiti DISTINCTROW za stvaranje popisa tvrtki koje imaju barem jednu narudžbu, ali bez pojedinosti o tim narudžbama:
Ako izostavite DISTINCTROW, ovaj upit stvara više redaka za svaku tvrtku koja ima više od jednog redoslijeda. DISTINCTROW ima učinak samo kada odaberete polja iz nekih, ali ne i svih tablica koje se koriste u upitu. DISTINCTROW se zanemaruje ako upit sadrži samo jednu tablicu ili ako izlazna polja iz svih tablica. |
TOP n [PERCENT] |
Vraća određeni broj zapisa koji se nalaze na vrhu ili dnu raspona navedenog uvjetom ORDER BY. Pretpostavimo da želite imena 25 najboljih učenika iz razreda 1994:
Ako ne uvrstite uvjet ORDER BY, upit će vratiti proizvoljni skup od 25 zapisa iz tablice Učenici koji zadovoljavaju uvjet WHERE. Predikat TOP ne odabire jednake vrijednosti. U prethodnom primjeru, ako su dvadeset peti i dvadeset šesti najviši prosjek ocjena isti, upit će vratiti 26 zapisa. Rezerviranu riječ PERCENT možete koristiti i za vraćanje određenog postotka zapisa koji se nalaze na vrhu ili dnu raspona navedenog uvjetom ORDER BY. Pretpostavimo da umjesto 25 najboljih učenika želite 10 posto od razreda:
Predikat ASC određuje povrat donjih vrijednosti. Vrijednost koja slijedi kao TOP mora biti nepotpisan cijeli broj. TOP ne utječe na to može li se upit ažurirati. |
tablica |
Naziv tablice iz koje se zapisi učitavaju. |