ALL, DISTINCT, DISTINCTROW, TOP Taisyklės sąlygos

Taikoma
„Access“, skirta „Microsoft 365“ „Access 2024“ Access 2021 Access 2019 Access 2016

Nurodo įrašus, pasirinktus su SQL užklausomis.

Sintaksė

PASIRINKITE [VISI | SKIRTINGAS | DISTINCTROW | [VIRŠUS n [PROCENTAI]]]
FROM table

Sakinys SELECT su šiomis taisyklės sąlygomis yra sudarytas iš šių dalių:

Dalis Aprašymas
ALL Laikoma, jei neįtrauksite vienos iš taisyklės sąlygų. "Microsoft Access" duomenų bazės modulis pasirenka visus įrašus, kurie atitinka SQL sakinio sąlygas. Toliau pateikti du pavyzdžiai yra lygiaverčiai ir pateikia visus įrašus iš lentelės Darbuotojai:PASIRINKTI VISKĄ *
FROM Employees
ORDER BY EmployeeID;
PASIRINKITE *
FROM Employees
ORDER BY EmployeeID;
DISTINCT Praleidžia įrašus, kurių pasirinktuose laukuose yra besidubliuojančių duomenų. Kad būtų įtraukta į užklausos rezultatus, kiekvieno SELECT sakinyje nurodyto lauko reikšmės turi būti unikalios. Pvz., 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 LastName
NUO darbuotojų;
Jei praleisite DISTINCT, ši užklausa pateiks abu Smitho įrašus.
Jei SELECT sąlygoje 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švesties negalima atnaujinti ir neatspindi kitų vartotojų vėlesnių pakeitimų.
DISTINCTROW Praleidžia duomenis pagal visus pasikartojančius įrašus, ne tik pasikartojančius laukus. Pavyzdžiui, galite sukurti užklausą, sujungiančią lenteles Klientai ir Užsakymai lauke KlientoID. Lentelėje Klientai nėra pasikartojančių laukų CustomerID, tačiau lentelėje Orders yra, nes kiekvienas klientas gali turėti daug užsakymų. Šis SQL sakinys parodo, kaip galite naudoti DISTINCTROW norėdami sukurti įmonių, kurios turi bent vieną užsakymą, bet be jokios informacijos apie tuos užsakymus, sąrašą:
SELECT DISTINCTROW CompanyName
FROM Customers INNER JOIN Užsakymai
ON Customers.CustomerID = Orders.CustomerID
ORDER BY CompanyName;
Jei praleisite DISTINCTROW, ši užklausa sukurs kelias eilutes kiekvienai įmonei, turinčiai daugiau nei vieną užsakymą.
Funkcija DISTINCTROW veikia tik pasirinkus laukus iš kai kurių, bet ne iš visų užklausoje naudojamų lentelių. DISTINCTROW nepaisoma, jei užklausoje yra tik viena lentelė arba jei pateikiamos laukai iš visų lentelių.
VIRŠUTINĖ: n [PROCENTAI] Pateikia tam tikrą skaičių įrašų, patenkančių į diapazono, kurį apibrėžia sąlyga ORDER BY, viršų arba apačią. Tarkime, norite sužinoti 25 geriausių 1994 m. klasės mokinių vardus:
PASIRINKITE 25 GERIAUSIUS
Vardas, pavardė
NUO studentų
WHERE Baigimo metai = 2003
ORDER BY GradePointAverage DESC;
Jei neįtrauksite sąlygos ORDER BY, užklausa pateiks pasirinktinį 25 įrašų rinkinį iš lentelės Studentai, kurie atitinka sąlygą WHERE.
TOP taisyklės sąlyga nesirenka tarp lygių reikšmių. Ankstesniame pavyzdyje, jei dvidešimt penktojo ir dvidešimt šeštojo aukščiausių pažymių vidurkiai yra vienodi, užklausa pateiks 26 įrašus.
Taip pat galite naudoti rezervuotąjį žodį PERCENT, kad grąžintumėte tam tikrą procentą įrašų, kurie yra diapazono, kurį apibrėžia sąlyga ORDER BY, viršuje arba apačioje. Tarkime, kad vietoj 25 geriausių mokinių norite 10 procentų mažiausiai turinčių klasės:
PASIRINKITE 10 PROCENTŲ VIRŠŲ
Vardas, pavardė
NUO studentų
WHERE Baigimo metai = 2003
ORDER BY GradePointAverage ASC;
ASC taisyklės sąlyga nurodo apatinių reikšmių grąžinimą. Po TOP esanti reikšmė turi būti nepasirašytas sveikasis skaičius.
TOP neturi įtakos tam, ar užklausa yra naujinama.
lentelė Lentelės, iš kurios nuskaitomi įrašai, pavadinimas.