ALL, DISTINCT, DISTINCTROW, TOP Predicates
Applies To„Access“, skirta „Microsoft 365“ „Access 2024“ Access 2021 Access 2019 Access 2016

Nurodo įrašus, pasirinktus naudojant SQL užklausas.

Sintaksė

SELECT [ALL | TIKSLUS | DISTINCTROW | [TOP n [PERCENT]]]FROM lentelė

Sakinys SELECT su šiomis taisyklės nuostatomis sudarytas iš šių dalių:

Dalis

Aprašas

ALL

Laikoma, jei neįtraukiate vienos iš taisyklės sąsainių. "Microsoft Access" duomenų bazės modulis pasirenka visus įrašus, kurie atitinka SQL sakinio sąlygas. Šie du pavyzdžiai yra lygiaverčiai ir pateikia visus įrašus iš lentelės Darbuotojai:

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

DISTINCT

Praleisti įrašus, kuriuose yra pasikartojančių duomenų pasirinktuose laukuose. Norint įtraukti į užklausos rezultatus, kiekvieno lauko, nurodyto sakinyje SELECT, reikšmės turi būti unikalios. Pavyzdžiui, keli darbuotojai, išvardyti lentelėje Darbuotojai, gali turėti tą pačią pavardę. Jei dviejų įrašų lauke Pavardė yra Smith, šis SQL sakinys pateikia tik vieną įrašą, kuriame yra Smith:

SELECT DISTINCT LastNameFROM Employees;

Jei distinct praimsite, ši užklausa grąžins abu Smith įrašus.

Jei sąlygoje SELECT yra daugiau nei vienas laukas, visų laukų reikšmių derinys turi būti unikalus, kad įrašas būtų įtrauktas į rezultatus.

Užklausos, kuri naudoja DISTINCT, išvestis yra neatnaujinama ir neatspindi paskesnių kitų vartotojų atliktų pakeitimų.

DISTINCTROW

Praleidžia duomenis pagal visus pasikartojančius įrašus, ne tik pasikartojančius laukus. Pavyzdžiui, galite sukurti užklausą, kuri sujungia lenteles Klientai ir Užsakymai lauke CustomerID. Lentelėje Klientai nėra besidubliuojančių CustomerID laukų, bet užsakymų lentelėje nėra, nes kiekvienas klientas gali turėti daug užsakymų. Šis SQL sakinys rodo, kaip galite naudoti DISTINCTROW įmonių, turinčių bent vieną užsakymą, bet neturinčių išsamios informacijos apie šiuos užsakymus, sąrašui sudaryti:

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

Jei distinctROW nenurodote, ši užklausa sukuria kelias eilutes kiekvienai įmonei, kuri turi daugiau nei vieną užsakymą.

DISTINCTROW veikia tik tada, kai pasirenkate laukus iš kai kurių, bet ne visų užklausoje naudojamų lentelių. DISTINCTROW nepaisoma, jei jūsų užklausoje yra tik viena lentelė, arba jei pateikiate laukus iš visų lentelių.

TOP n [PERCENT]

Pateikia tam tikrą skaičių įrašų, kurie yra diapazono, nurodyto sąlygoje ORDER BY, viršuje arba apačioje. Tarkime, kad norite 1994 m. klasės 25 geriausių studentų vardų:

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

Jei neįtrauksite sąlygos ORDER BY, užklausa pateiks savavališką 25 įrašų rinkinį iš lentelės Studentai, kuris atitinka sąlygą WHERE.

TAISYKLĖS SĄLYGA TOP nesirenka iš lygių reikšmių. Ankstesniame pavyzdyje, jei dvidešimt penktos ir dvidešimt šeštos įvertinimų balų vidurkiai yra tokie patys, užklausa pateiks 26 įrašus.

Taip pat galite naudoti rezervuotą žodį PERCENT, kad grąžintumėte tam tikrą procentą įrašų, kurie yra diapazono, nurodyto sąlygoje ORDER BY, viršuje arba apačioje. Tarkime, kad vietoj 25 geriausių mokinių norite 10 procentų apatinės klasės:

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

ASC taisyklės sąlyga nurodo apatinių reikšmių grąžinimą. Reikšmė, esanti po TOP, turi būti nepasirašytas sveikasis skaičius.

FUNKCIJA TOP neturi įtakos, ar užklausa gali būti naujinama.

lentelė

Lentelės, iš kurios nuskaitomi įrašai, pavadinimas.

Reikia daugiau pagalbos?

Norite daugiau parinkčių?

Sužinokite apie prenumeratos pranašumus, peržiūrėkite mokymo kursus, sužinokite, kaip apsaugoti savo įrenginį ir kt.

Bendruomenės padeda užduoti klausimus ir į juos atsakyti, pateikti atsiliepimų ir išgirsti iš ekspertų, turinčių daug žinių.