Predikaadid ALL, DISTINCT, DISTINCTROW, TOP
Applies ToMicrosoft 365 rakendus Access Access 2024 Access 2021 Access 2019 Access 2016

Määrab SQL-päringutega valitud kirjed.

Süntaks

SELECT [KÕIK | DISTINCT | DISTINCTROW | [TOP n [PERCENT]]]FROM-tabel

Neid predikaate sisaldav SELECT-lause koosneb järgmistest osadest.

Osa

Kirjeldus

ALL

Oletatakse, et kui te ei kaasa ühte predikaatidest. Microsoft Accessi andmebaasimootor valib kõik SQL-lause tingimustele vastavad kirjed. Järgmised kaks näidet on võrdväärsed ja tagastavad kõik tabeli Töötajad kirjed.

SELECT ALL *FROM EmployeesORDER BY EmployeeID;
SELECT *FROM EmployeesORDER BY EmployeeID;

DISTINCT

Jätab välja kirjed, mis sisaldavad valitud väljadel duplikaatandmeid. Päringutulemitesse kaasamiseks peavad lauses SELECT loetletud väljade väärtused olema kordumatud. Näiteks võib mitmel tabelis Töötajad loetletud töötajal olla sama perekonnanimi. Kui väljal Perekonnanimi on kaks kirjet Smith, tagastab järgmine SQL-lause ainult ühe kirje, mis sisaldab sarja Smith:

SELECT DISTINCT LastNameFROM Employees;

Kui argument DISTINCT puudub, tagastab see päring mõlemad Smithi kirjed.

Kui SELECT-klausel sisaldab mitut välja, peab kõigi väljade väärtuste kombinatsioon olema kordumatu, et antud kirje kaasataks tulemitesse.

DISTINCT-funktsiooni kasutava päringu väljundit ei saa värskendada ega kajasta teiste kasutajate edaspidisi muudatusi.

DISTINCTROW

Jätab välja tervetel duplikaatkirjetel põhinevad andmed, mitte ainult duplikaatväljad. Näiteks saate luua päringu, mis ühendab välja KliendiID tabelid Kliendid ja Tellimused. Tabelis Kliendid pole duplikaatvälju CustomerID, kuid tabelis Tellimused võib olla mitu tellimust. Järgmine SQL-lause näitab, kuidas saate DISTINCTROW abil koostada nende ettevõtete loendi, millel on vähemalt üks tellimus, kuid mis ei sisalda nende tellimuste kohta üksikasju.

SELECT DISTINCTROW CompanyNameFROM Customers INNER JOIN OrdersON Customers.CustomerID = Orders.CustomerIDORDER BY CompanyName;

Kui jätate funktsiooni DISTINCTROW välja, loob see päring iga ettevõtte jaoks mitu rida, millel on rohkem kui üks tellimus.

DISTINCTROW mõjub ainult siis, kui valite välju päringus kasutatavatest tabelitest, kuid mitte kõigist. DISTINCTROW-d ignoreeritakse, kui teie päring sisaldab ainult ühte tabelit või väljastate väljad kõigist tabelitest.

TOP n [PERCENT]

Tagastab teatud arvu kirjeid, mis jäävad klausliga ORDER BY määratud vahemiku üla- või allserva. Oletagem, et soovite 1994. aasta klassi esimese 25 õpilase nimesid:

SELECT TOP 25FirstName, LastNameFROM StudentsWHERE GraduationYear = 2003ORDER BY GradePointAverage DESC;

Kui te klauslit ORDER BY ei kaasa, tagastab päring õppurite tabelist meelevaldse 25 kirjega kogumi, mis vastab WHERE-klauslile.

TOP-predikaat ei vali võrdsete väärtuste vahel. Kui eelmises näites on kahekümne viies ja kahekümne kuues kõrgeima hinnete keskmine sama, tagastab päring 26 kirjet.

Reserveeritud sõna PERCENT saate kasutada ka teatud protsendi kirjete tagastamiseks, mis jäävad klausliga ORDER BY määratud vahemiku üla- või allserva. Oletagem, et 25 parima õppuri asemel soovite, et alumine 10% klassist:

SELECT TOP 10 PERCENTFirstName, LastNameFROM StudentsWHERE GraduationYear = 2003ORDER BY GradePointAverage ASC;

ASC predikaat määrab alumise väärtuse tagastamise. TOP-ile järgnev väärtus peab olema allkirjastamata täisarv.

TOP ei mõjuta seda, kas päring on värskendatav või mitte.

tabel

Selle tabeli nimi, kust kirjed alla laaditakse.

Kas vajate veel abi?

Kas soovite rohkem valikuvariante?

Siin saate tutvuda tellimusega kaasnevate eelistega, sirvida koolituskursusi, õppida seadet kaitsma ja teha veel palju muud.

Kogukonnad aitavad teil küsimusi esitada ja neile vastuseid saada, anda tagasisidet ja saada nõu rikkalike teadmistega asjatundjatelt.