Kirjaudu sisään Microsoft-tilillä
Kirjaudu sisään tai luo tili.
Hei
Valitse toinen tili.
Sinulla on useita tilejä
Valitse tili, jolla haluat kirjautua sisään.
ALL-, DISTINCT-, DISTINCTROW- ja TOP-predikaatit

Määrittää SQL-kyselyillä valitut tietueet.

Syntaksi

SELECT [ALL | DISTINCT | DISTINCTROW | [TOP n [PERCENT]]]
FROM taulu

Nämä predikaatit sisältävässä SELECT-komennossa on seuraavat osat:

Osa

Kuvaus

ALL

Oletus, jos et käytä jotakin predikaattia. Microsoft Access -tietokantamoduuli valitsee kaikki SQL-lausekkeen ehdot täyttävät tietueet. Seuraavat kaksi esimerkkiä vastaavat tosiaan ja palauttavat kaikki tietueet Employees-taulukosta:

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

DISTINCT

Jättää pois tietueet, jotka sisältävät samat arvot valituissa kentissä. Tietue otetaan mukaan kyselyn tuloksiin vain, jos sillä on muihin tietueisiin verrattuna yksilölliset arvot SELECT-lausekkeessa määritetyissä kentissä. Esimerkiksi Employees-taulussa usealla työntekijällä voi olla sama sukunimi. Jos kahdessa tietueessa on Sukunimi-kentän arvona Salo, seuraava SQL-lauseke palauttaa vain yhden Salo-tietueen:

SELECT DISTINCT LastName
FROM Employees;

Jos jätät DISTINCT-predikaatin pois, kysely palauttaa molemmat Salo-tietueet.

Jos SELECT-lauseke sisältää enemmän kuin yhden kentän, kukin kaikkien kenttien arvoyhdistelmä otetaan mukaan kyselyn tuloksiin vain kerran.

DISTINCT-predikaattia käyttävää kyselyä ei voi päivittää eikä se näytä muiden käyttäjien myöhemmin tekemiä muutoksia.

DISTINCTROW

Poistaa tiedot kokonaisten tietueiden kaksoiskappaleiden perusteella, ei vain kenttien kaksoiskappaleiden perusteella. Voit esimerkiksi luoda kyselyn, joka yhdistää Asiakkaat- ja Tilaukset-taulukot Asiakastunnus-kenttään. Asiakkaat-taulukossa ei ole päällekkäisiä Asiakastunnus-kenttiä, mutta Tilaukset-taulukko tekee niin, koska kullakin asiakkaalla voi olla useita tilauksia. Seuraavassa SQL-lausekkeessa näytetään, miten DISTINCTROW-funktiolla voidaan luoda luettelo yrityksistä, joilla on vähintään yksi tilaus, mutta ei tietoja näistä tilauksista:

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

Jos jätät DISTINCTROW-predikaatin pois, tämä kysely näyttää useita rivejä kullekin yritykselle, joilla on enemmän kuin yksi tilaus.

DISTINCTROW vaikuttaa vain, kun valitset kenttiä joistakin mutta et kaikista kyselyssä käytettävistä tauluista. DISTINCTROW ohitetaan, jos kysely sisältää vain yhden taulukon tai jos otat mukaan kenttiä kaikista tauluista.

TOP n [PERCENT]

Palauttaa tietyn määrän tietueita, jotka ovat ORDER BY -lausekkeen määrittämän alueen ala- tai yläpäässä. Oletetaan, että haluat arvosanoiltaan 25 parhaan oppilaan nimet vuodelta 1994:

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

Jos et käytä ORDER BY -lauseketta, kysely palauttaa Students-taulusta satunnaisen 25 tietueen joukon, joka täyttää WHERE-lausekkeen ehdot.

TOP-predikaatti ei valitse jotakin tiettyä tietuetta, jos niiden arvot täsmäävät. Jos 25:nneksi ja 26:nneksi korkein arvosana on edellisessä esimerkissä sama, kysely palauttaa 26 tietuetta.

Voit myös käyttää varattua PERCENT-sanaa, jos haluat palauttaa tietyn prosenttiosuuden tietueista, jotka ovat ORDER BY -lausekkeella määritetyn alueen ala- tai yläpäässä. Oletetaan, että haluat valita 25 parhaan arvosanan saaneiden oppilaiden sijaan oppilaat, joiden arvosana on heikoimman 10 prosentin joukossa:

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

ASC-predikaattia käytetään, jos halutaan palauttaa alimmat arvot. TOP-predikaattia seuraavan arvon on oltava etumerkitön kokonaisluku.

TOP ei vaikuta kyselyn päivitettävyyteen.

taulu

Sen taulukon nimi, josta tietueet noudetaan.



Tarvitsetko lisäohjeita?

Kehitä taitojasi
Tutustu koulutusmateriaaliin
Saat uudet ominaisuudet ensimmäisten joukossa
Liity Microsoft Office Insidersiin

Oliko näistä tiedoista hyötyä?

Kuinka tyytyväinen olet käännöksen laatuun?
Mikä vaikutti kokemukseesi?

Kiitos palautteesta!

×