Predikati ALL, DISTINCT, DISTINCTROW in TOP

Predikati ALL, DISTINCT, DISTINCTROW in TOP

Določa zapise, izbrane s poizvedbami SQL.

Sintaksa

IZBERITE [VSE | LOČENO | DISTINCTROW | [Vrh n [odstotek]]]
IZ tabele

Izjava SELECT, ki vsebuje te predikate, ima te dele:

Del

Opis

ALL

Predpostavi se, če ne vključite enega od predikatov. Microsoft Accessov mehanizem zbirke podatkov izbere vse zapise, ki ustrezajo pogojem v izjavi SQL. Ta dva primera sta enakovredna in vrneta vse zapise iz tabele» Employees «:

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

DISTINCT

Izpusti zapise, ki vsebujejo podvojene podatke v izbranih poljih. Če želite vključiti rezultate poizvedbe, morajo biti vrednosti za vsako polje, navedeno v izjavi SELECT, enolične. Na primer, več zaposlenih, navedenih v tabeli» zaposleni «, ima lahko enak priimek. Če dva zapisa v polju» LastName «vsebujeta» Smith «, ta izjava SQL vrne le en zapis, ki vsebuje Smith:

SELECT DISTINCT LastName
FROM Employees;

Če izpustite RAZLIKO, poizvedba vrne oba zapisa Smith.

Če stavek SELECT vsebuje več kot eno polje, mora biti kombinacija vrednosti iz vseh polj enolična za dani zapis, ki ga je treba vključiti v rezultate.

Izhoda poizvedbe, ki uporablja RAZLIKOVALni učinek, ni mogoče posodobiti in ne odraža poznejših sprememb, ki so jih naredili drugi uporabniki.

DISTINCTROW

Izpusti podatke, ki temeljijo na celotnih podvojenih zapisih, ne le podvojenih poljih. Ustvarite lahko na primer poizvedbo, ki združuje tabele» stranke «in» naročila «v polju» IDstranke «. V tabeli» stranke «ni podvojenih IDstranke polj, vendar tabela» naročila «naredi, ker ima lahko vsaka stranka več naročil. V tej izjavi SQL je prikazano, kako lahko uporabite DISTINCTROW, če želite ustvariti seznam podjetij, ki imajo vsaj eno naročilo, vendar brez podrobnosti o teh naročilih:

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

Če izpustite DISTINCTROW, ta poizvedba ustvari več vrstic za vsako podjetje, ki ima več kot eno naročilo.

DISTINCTROW ima učinek le, če izberete polja iz nekaterih, ne pa tudi vseh tabel, ki so uporabljene v poizvedbi. DISTINCTROW se prezre, če vaša poizvedba vključuje le eno tabelo ali če izstopite polja iz vseh tabel.

ZGORNJI n [odstotek]

Vrne določeno število zapisov, ki so na vrhu ali dnu obsega, ki ga določa stavek ORDER BY. Recimo, da želite imena prvih 25 študentov iz razreda 1994:

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

Če ne vključite stavka ORDER BY, bo poizvedba vrnila poljubni nabor 25 zapisov iz tabele študenti, ki ustrezajo stavku WHERe.

ZGORNJI predikat ne izbere med enakimi vrednostmi. V prejšnjem primeru bo poizvedba vrnila 26 zapisov, če so povprečje enaindvajsetih in dvajsetih najvišjih povprečnih točk.

Če želite vrniti določen odstotek zapisov, ki so na vrhu ali dnu obsega, ki je določen z stavkom ORDER BY, lahko uporabite tudi rezervirano besedo%. Recimo, da namesto prvih 25 študentov želite spodnji 10 odstotkov predavanja:

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

Predikat ASC določa vrnitev spodnjih vrednosti. Vrednost, ki sledi vrhu, mora biti Nepodpisano celo število.

Na vrh ne vpliva na to, ali je poizvedba posodobljena.

tabela

Ime tabele, iz katerih pridobivate zapise.



Ali potrebujete dodatno pomoč?

Razširite poznavanje Officea
Oglejte si izobraževanje
Prvi dobite nove funkcije
Pridružite se programu Office Insider

Vam je bila informacija v pomoč?

Zahvaljujemo se vam za povratne informacije. Videti je, da bi vam prišla prav pomoč enega od naših Officeovih agentov za podporo.

×