Conectați-vă cu Microsoft
Conectați-vă sau creați un cont
Salut,
Selectați un alt cont.
Aveți mai multe conturi
Alegeți contul cu care doriți să vă conectați.
Predicatele ALL, DISTINCT, DISTINCTROW, TOP

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 Employees
ORDER BY EmployeeID;
SELECT *
FROM Employees
ORDER 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 LastName
FROM 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 CompanyName
FROM Customers INNER JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
ORDER 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 25
FirstName, LastName
FROM Students
WHERE GraduationYear = 2003
ORDER 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 PERCENT
FirstName, LastName
FROM Students
WHERE GraduationYear = 2003
ORDER 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.

Au fost utile aceste informații?

Cât de mulțumit sunteți de calitatea limbajului?
Ce v-a afectat experiența?
Apăsând pe Trimitere, feedbackul dvs. va fi utilizat pentru a îmbunătăți produsele și serviciile Microsoft. Administratorul dvs. IT va avea posibilitatea să colecteze aceste date. Angajamentul de respectare a confidențialității.

Vă mulțumim pentru feedback!

×