Visi, išskirtiniai, skiriamieji, Geriausi prognozuoja

Nurodo su SQL užklausomis pasirinktus įra us.

Sintaksė

PASIRINKITE [VISI | DISTINCT | "DISTINCTROW" | [Viršus n [procentai]]]
lentelės

Sakinys SELECT, kuriame yra šios sąlygos, turi šias dalis:

Dalis

Aprašas

ALL

Prielaida, jei neįtraukiate vienos iš šių preatų. "Microsoft Access" duomenų bazės modulis pažymi visus duomenis, atitinkančius SQL sakinio sąlygas. Toliau pateikti du pavyzdžiai yra lygiaverčiai ir grąžina visus duomenis iš lentelės darbuotojai:

SELECT ALL *
FROM Employees
ORDER BY EmployeeID;
SELECT *
FROM Employees
ORDER BY EmployeeID;

DISTINCT

Praleidžia duomenis, turinčius pasirinktų laukų pasikartojančius duomenis. Kad būtų galima įtraukti į užklausos rezultatus, kiekvienos lauko, pateikto sakinyje SELECT, reikšmės turi būti unikalios. Pvz., keli darbuotojai, pateikti lentelėje darbuotojai, gali turėti tą patį pavardę. Jei dviejuose įrašuose lauke LastName yra Smithas, šis SQL sakinys pateikia tik vieną įrašą, kuriame yra "Smith":

SELECT DISTINCT LastName
FROM Employees;

Jei praleisite DISTINCT, ši užklausa pateiks ir Smith įrašą.

Jei sąlygoje SELECT yra daugiau nei vienas laukas, visų laukų reikšmių derinys turi būti unikalus konkretaus įrašo, įtraukto į rezultatus, derinys.

Užklausos, kuri naudoja DISTINCT, išvestis nėra atnaujinama ir neatspindi vėlesnių kitų vartotojų atliktų pasikeitimų.

DISTINCTROW

Praleidžia duomenis, pagrįstus visais pasikartojančiais įrašais, o ne tik dubliuojamais laukais. Pavyzdžiui, galite sukurti užklausą, kuri į lauką CustomerID sujungia lenteles Klientai ir užsakymai. Lentelėje Klientai yra ne pasikartojančių CustomerID laukų, tačiau lentelė užsakymai daro, nes kiekvienas klientas gali turėti daug užsakymų. Šiame SQL sakinyje rodoma, kaip galite naudoti "DISTINCTROW", jei norite pateikti sąrašą įmonių, kurios turi bent vieną užsakymą, bet be išsamios informacijos apie šiuos užsakymus:

SELECT DISTINCTROW CompanyName
FROM Customers INNER JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
ORDER BY CompanyName;

Jei praleisite DISTINCTROW, ši užklausa sukuria kelias eilutes kiekvienai įmonei, kuri turi daugiau nei vieną tvarką.

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 iš visų lentelių išvesti laukai.

TOP n [procentai]

Grąžina tam tikrą skaičių duomenų, kurie patenka į intervalo, nurodyto pagal sąlygą ORDER BY, viršuje arba apačioje. Tarkime, kad norite, kad 25 geriausių studentų, turinčių 1994 klasę, vardai:

SELECT TOP 25
FirstName, LastName
FROM Students
WHERE GraduationYear = 2003
ORDER BY GradePointAverage DESC;

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

VIRŠUTINIS prepas nesirinkite tarp lygių reikšmių. Ankstesniame pavyzdyje, jei dvidešimt penktoji ir dvidešimt šeštasis aukščiausio lygio taškų vidurkiai sutampa, užklausa pateiks 26 įrašą.

Taip pat galite naudoti rezervuotąjį "Word", kad grąžintumėte tam tikrą dalį įrašo, kuris patenka į intervalo, nurodyto pagal sąlygą ORDER BY, viršuje arba apačioje. Tarkime, kad vietoj 25 geriausių studentų norite, kad būtų 10 procentų iš klasės:

SELECT TOP 10 PERCENT
FirstName, LastName
FROM Students
WHERE GraduationYear = 2003
ORDER BY GradePointAverage ASC;

Programa ASC nurodo, kad yra grąžinamos mažiausios reikšmės. Reikšmė, kuri seka po viršų, turi būti nepasirašytas sveikasis skaičius.

Viršus neturi įtakos, ar užklausa atnaujinama.

lentelė

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



Reikia daugiau pagalbos?

Tobulinkite savo įgūdžius
Ieškoti mokymo

Ar ši informacija buvo naudinga?

Ar esate patenkinti kalbos kokybe?
Kas turėjo įtakos jūsų įspūdžiams?

Dėkojame už jūsų atsiliepimus!

×