Kirjaudu sisään Microsoft-tilillä
Kirjaudu sisään tai luo tili.
Hei,
Käytä toista tiliä.
Sinulla on useita tilejä
Valitse tili, jolla haluat kirjautua sisään.

Alikysely on SELECT-lauseke, joka sijaitsee SELECT-, SELECT... INTO, INSERT... INTO-, DELETE- tai UPDATE-lauseke tai jonkin muun alikyselyn sisällä.

Syntaksi

Voit luoda alikyselyn käyttämällä kolmea syntaksimuotoa:

vertailu [ANY | KAIKKI | SOME] (sqlstatement)

lauseke [NOT] IN (sqlstatement)

[EI] EXISTS (sqlstatement)

Alikyselyssä on seuraavat osat:

Osa

Kuvaus

Vertailu

lauseke ja vertailuoperaattori, joka vertaa lauseketta alikyselyn tuloksiin.

lauseke

Lauseke, jonka alikyselyn tulosjoukkoa etsitään.

sql-lauseke

SELECT-lauseke, joka seuraa samaa muotoa ja sääntöjä kuin mikä tahansa muu SELECT-lauseke. Sen on oltava sulkeissa.


Huomautuksia

Voit käyttää alikyselyä lausekkeen sijaan SELECT-lausekkeen kenttäluettelossa tai WHERE- tai HAVING-lauseessa. Alikyselyssä käytetään SELECT-lauseketta yhden tai useamman tietyn arvon määrittämiseen WHERE- tai HAVING-lauselausekkeessa.

Käytä SYNonyymiä ANY- tai SOME-predikaattia pääkyselyn tietueiden noutamiseen, jotka vastaavat vertailua alikyselyssä noudettuihin tietueisiin. Seuraavassa esimerkissä palautetaan kaikki tuotteet, joiden yksikköhinta on suurempi kuin minkä tahansa myydyn tuotteen hinta vähintään 25 prosentin alennuksella:

SELECT * FROM Products WHERE UnitPrice > ANY (SELECT UnitPrice FROM OrderDetails WHERE Discount >= .25);

Käytä ALL-predikaattia noutaaksesi vain pääkyselyn tietueet, jotka täyttävät vertailun kaikkiin alikyselyssä noudettuihin tietueisiin. Jos muutit edellisessä esimerkissä ANY-arvoksi KAIKKI, kysely palauttaisi vain ne tuotteet, joiden yksikköhinta on suurempi kuin kaikkien myytyjen tuotteiden yksikköhinta vähintään 25 prosentin alennuksella. Tämä on paljon rajoittavampaa.

IN-predikaatin avulla voit noutaa vain ne pääkyselyn tietueet, joiden alikyselyn jotkin tietueet sisältävät yhtäläisyysarvon. Seuraavassa esimerkissä palautetaan kaikki tuotteet, joiden alennus on vähintään 25 prosenttia:

SELECT * FROM Products WHERE ProductID IN (SELECT ProductID FROM OrderDetails WHERE Discount >= .25);

Vastaavasti VOIT NOUTAA NOT IN -toiminnolla vain ne pääkyselyn tietueet, joiden alikyselyn yksikään tietue ei sisällä yhtä suuriarvoista arvoa.

Käytä EXISTS-predikaattia (valinnaisella EI varatulla sanalla) tosi- ja epätosivertailuissa sen määrittämiseksi, palauttaako alikysely tietueita.

Voit myös käyttää alikyselyssä taulukon nimitunnuksia viittaamaan alikyselyn ulkopuolisessa FROM-lauseessa lueteltuihin taulukoihin. Seuraavassa esimerkissä palautetaan niiden työntekijöiden nimet, joiden palkat ovat yhtä suuria tai suurempia kuin niiden työntekijöiden keskipalkka, joilla on sama tehtävänimike. Työntekijät-taulukolle annetaan tunnus "T1":

SELECT LastName, FirstName, Title, Salary FROM Employees AS T1 WHERE Salary >= (SELECT Avg(Salary) FROM Employees WHERE T1.Title = Employees.Title) Order by Title;

Edellisessä esimerkissä AS- varattu sana on valinnainen.

Jotkin alikyselyt ovat sallittuja ristiintaulukointikyselyissä – erityisesti predikaattina (WHERE-lauseessa). Alikyselyt tulosteina (SELECT-luettelossa olevat) eivät ole sallittuja ristiintaulukointikyselyissä.



Tarvitsetko lisäohjeita?

Haluatko lisää vaihtoehtoja?

Tutustu tilausetuihin, selaa harjoituskursseja, opi suojaamaan laitteesi ja paljon muuta.

Osallistumalla yhteisöihin voit kysyä kysymyksiä ja vastata niihin, antaa palautetta sekä kuulla lisää asiantuntijoilta, joilla on runsaasti tietoa.

Oliko näistä tiedoista hyötyä?

Kuinka tyytyväinen olet käännöksen laatuun?
Mikä vaikutti kokemukseesi?
Kun valitset Lähetä, palautettasi käytetään Microsoftin tuotteiden ja palveluiden parantamiseen. IT-järjestelmänvalvojasi voi kerätä nämä tiedot. Tietosuojatiedot.

Kiitos palautteesta!

×