Predicatele ALL, DISTINCT, DISTINCTROW, TOP
Applies ToAccess pentru Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Specifică înregistrările selectate în interogările SQL.

Sintaxă

SELECT [TOATE | DISTINCT | DISTINCTROW | [TOP n [PERCENT]]]Tabel FROM

O instrucțiune SELECT care conține aceste predicate are următoarele componente:

Parte

Descriere

ALL

Asumat dacă nu includeți unul dintre predicate. Motorul de baze de date Microsoft Access selectează toate înregistrările care îndeplinesc condițiile din instrucțiunea SQL. Următoarele două exemple sunt echivalente și returnează toate înregistrările din tabelul Angajați:

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

DISTINCT

Omite înregistrările care conțin date dublate în câmpurile selectate. Pentru a fi incluse în rezultatele interogării, valorile pentru fiecare câmp listat în instrucțiunea SELECT trebuie să fie unice. De exemplu, mai mulți angajați listați într-un tabel Angajați pot avea același nume de familie. Dacă două înregistrări conțin Smith în câmpul Nume, următoarea instrucțiune SQL returnează o singură înregistrare care conține Smith:

SELECT DISTINCT LastNameFROM Employees;

Dacă omiteți DISTINCT, această interogare returnează ambele înregistrări Smith.

Dacă clauza SELECT conține mai multe câmpuri, combinația de valori din toate câmpurile trebuie să fie unică pentru ca o înregistrare dată să fie inclusă în rezultate.

Rezultatul unei interogări care utilizează DISTINCT nu se poate actualiza și nu reflectă modificările ulterioare efectuate de alți utilizatori.

DISTINCTROW

Omite datele pe baza unor înregistrări dublate întregi, nu doar a câmpurilor dublate. De exemplu, puteți crea o interogare care asociază tabelele Clienți și Comenzi în câmpul IDClienți. Tabelul Clienți nu conține câmpuri CUSTOMERID dublate, dar tabelul Comenzi are, deoarece fiecare client poate avea mai multe comenzi. Următoarea instrucțiune SQL arată cum puteți utiliza DISTINCTROW pentru a produce o listă de firme care au cel puțin o comandă, dar fără detalii despre comenzile respective:

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

Dacă omiteți DISTINCTROW, această interogare produce mai multe rânduri pentru fiecare firmă care are mai multe comenzi.

DISTINCTROW are efect doar atunci când selectați câmpuri din unele tabele utilizate în interogare, dar nu din toate. DISTINCTROW este ignorat dacă interogarea dvs. include un singur tabel sau dacă generați câmpuri din toate tabelele.

TOP n [PERCENT]

Returnează un anumit număr de înregistrări care se încadrează în partea de sus sau de jos a unei zone specificate printr-o clauză ORDER BY. Să presupunem că doriți numele primelor 25 de elevi din clasa a 1994:

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

Dacă nu includeți clauza ORDER BY, interogarea va returna un set arbitrar de 25 de înregistrări din tabelul Studenți care satisfac clauza WHERE.

Predicatul TOP nu alege între valori egale. În exemplul precedent, dacă mediile de puncte de nota douăzeci și cinci și douăzeci și șase sunt identice, interogarea va returna 26 de înregistrări.

De asemenea, puteți utiliza cuvântul rezervat PERCENT pentru a returna un anumit procent de înregistrări care se încadrează în partea de sus sau de jos a unei zone specificate printr-o clauză ORDER BY. Să presupunem că, în loc de primii 25 de elevi, doriți ultimele 10 procente din clasă:

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

Predicatul ASC specifică o returnare de valori inferioare. Valoarea care urmează după TOP trebuie să fie un întreg nesemnat.

TOP nu afectează dacă interogarea este sau nu actualizabilă.

tabel

Numele tabelului din care sunt regăsite înregistrările.

Aveți nevoie de ajutor suplimentar?

Doriți mai multe opțiuni?

Explorați avantajele abonamentului, navigați prin cursurile de instruire, aflați cum să vă securizați dispozitivul și multe altele.

Comunitățile vă ajută să adresați întrebări și să răspundeți la întrebări, să oferiți feedback și să primiți feedback de la experți cu cunoștințe bogate.