Določa zapise, izbrane s poizvedbami SQL.
Sintaksa
SELECT [ALL | DISTINCT | DISTINCTROW | [TOP n [PERCENT]]]
TABELA FROMIzjava SELECT, ki vsebuje te predikate, ima te dele:
Del |
Opis |
ALL |
Privzame se, če ne vključite enega od predikatov. Mehanizem Microsoft Accessove zbirke podatkov izbere vse zapise, ki ustrezajo pogojem v izjavi SQL. Ta dva primera sta enakovredna in vrneta vse zapise iz tabele »Zaposleni«:
|
DISTINCT |
Izpustite zapise, ki v izbranih poljih vsebujejo podvojene podatke. Če želite biti vključeni v rezultate poizvedbe, morajo biti vrednosti za vsako polje, navedeno v izjavi SELECT, enolične. Na primer, več zaposlenih, ki so navedeni v tabeli zaposlenih, ima lahko isti priimek. Če dva zapisa vsebujeta Smith v polju Priimek, spodnja izjava SQL vrne le en zapis, ki vsebuje Smith:
Če izpustite distinct, ta poizvedba vrne oba zapisa Smith. Če stavek SELECT vsebuje več kot eno polje, mora biti kombinacija vrednosti iz vseh polj enolična, če želite, da je dani zapis vključen v rezultate. Rezultata poizvedbe, ki uporablja funkcijo DISTINCT, ni mogoče posodobiti in ne odraža poznejših sprememb, ki so jih naredili drugi uporabniki. |
DISTINCTROW |
Izpustite podatke, ki temeljijo na celotnih podvojenih zapisih, ne le na podvojenih poljih. Ustvarite lahko na primer poizvedbo, ki v polju »ID Stranke« združi tabeli »Stranke« in »Naročila«. V tabeli »Stranke« ni podvojenih polj »ID Stranke«, tabela »Naročila« pa jo vsebuje, ker ima lahko vsaka stranka več naročil. Spodnja izjava SQL prikazuje, kako lahko s funkcijo DISTINCTROW ustvarite seznam podjetij, ki imajo vsaj eno naročilo, vendar brez podrobnosti o teh naročilih:
Če izpustite distinctrow, ta poizvedba ustvari več vrstic za vsako podjetje, ki ima več naročil. Funkcija DISTINCTROW ima učinek le, če izberete polja iz nekaterih tabel, ki so uporabljene v poizvedbi, vendar ne vseh. FUNKCIJA DISTINCTROW je prezrta, če poizvedba vključuje le eno tabelo ali če izhodna polja iz vseh tabel. |
TOP n [PERCENT] |
Vrne določeno število zapisov, ki so na vrhu ali dnu obsega, določenega s stavkom ORDER BY. Denimo, da želite imena 25 najboljših študentov iz razreda 1994:
Če ne vključite stavka ORDER BY, bo poizvedba vrnila poljubni nabor 25 zapisov iz tabele Študenti, ki izpolnjujejo stavek WHERE. Predikat TOP ne izbira med enakimi vrednostmi. Če sta v prejšnjem primeru povprečja 25. in 26. najvišjega razreda enaka, bo poizvedba vrnila 26 zapisov. Z rezervirano besedo PERCENT lahko tudi vrnete določen odstotek zapisov, ki so na vrhu ali dnu obsega, določenega s stavkom ORDER BY. Denimo, da namesto 25 najboljših študentov želite spodnjih 10 odstotkov razreda:
Predikat ASC določa vrnitev spodnjih vrednosti. Vrednost, ki sledi ukazu TOP, mora biti nepodpisano celo število. TOP ne vpliva na to, ali je poizvedbo mogoče posodobiti ali ne. |
tabela |
Ime tabele, iz katerih pridobivate zapise. |