Specifică înregistrările selectate în interogările SQL.
Sintaxă
SELECT [TOATE | DISTINCT | DISTINCTROW | [TOP n [PERCENT]]]
Tabel FROMO 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:
|
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:
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:
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:
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ă:
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. |