Logige sisse Microsofti kontoga
Logige sisse või looge konto.
Tere!
Valige mõni muu konto.
Teil on mitu kontot
Valige konto, millega soovite sisse logida.

Alampäring on SELECT-lause, mis on pesastatud SELECT-, SELECT-... INTO, INSERT... LAUSE INTO, DELETE või UPDATE või muus alampäringus.

Süntaks

Alampäringu loomiseks saate kasutada kolme süntaksivormi.

võrdlus [ANY | KÕIK | SOME] (sqlstatement)

avaldis [NOT] IN (sqlstatement)

[NOT] EXISTS (sqlstatement)

Alampäring koosneb järgmistest osadest.

Osa

Kirjeldus

Võrdlus

avaldis ja võrdlusmärk, mis võrdleb avaldist alampäringu tulemitega.

avaldis

Avaldis, millest otsitakse alampäringu tulemikomplekti.

sql-lause

SELECT-lause, mis järgib sama vormingut ja reegleid nagu mis tahes muu SELECT-lause. See peab olema sulgudes.


Kommentaarid

SELECT-lause väljaloendis või WHERE- või HAVING-klauslis saate avaldise asemel kasutada alampäringuid. Alampäringus saate SELECT-lause abil sisestada ühe või mitu konkreetset väärtust, mida saab WHERE- või HAVING-klausli avaldises väärtustada.

Põhipäringu kirjete toomiseks, mis vastavad alampäringus toodud kirjete võrdlusele, kasutage predikaati ANY või SOME, mis on sünonüümne. Järgmises näites tagastatakse kõik tooted, mille ühikuhind on suurem kui mis tahes 25 protsendilise allahindlusega müüdud toodete omast:

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

Predikaadi ALL abil saate tuua ainult need põhipäringu kirjed, mis vastavad võrdlusele kõigi alampäringus toodud kirjetega. Kui muutsite eelmises näites sätte ANY väärtuseks ALL, tagastaks päring ainult need tooted, mille ühikuhind on suurem kui kõigi 25% või rohkema allahindlusega müüdud toodete omast. See on palju piiravam.

Predikaadi IN abil saate tuua ainult need põhipäringu kirjed, mille jaoks mõni alampäringu kirje sisaldab võrdset väärtust. Järgmises näites tagastatakse kõik tooted, mille allahindlus on 25 protsenti või rohkem.

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

Teise võimalusena saate funktsiooni NOT IN kasutada ainult nende põhipäringu kirjete toomiseks, mille jaoks ükski alampäringu kirje ei sisalda võrdset väärtust.

Kasutage predikaati EXISTS (koos valikulise not-reserveeritud sõnaga) tõestes/väärades võrdlustes, et teha kindlaks, kas alampäring tagastab kirjed.

Lisaks saate alampäringus kasutada tabelinime pseudonüüme, et viidata tabelitele, mis on loetletud väljaspool alampäringuid FROM-klauslis. Järgmises näites tagastatakse nende töötajate nimed, kelle palgad on võrdsed või suuremad kui kõigi sama ametinimetusega töötajate keskmine palk. Tabelile Töötajad antakse pseudonüüm "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;

Eelmises näites on AS-i reserveeritud sõna valikuline.

Mõned alampäringud on ristpäringutes lubatud , täpsemalt predikaatidena (WHERE-klauslis). Alampäringud väljundina (SELECT-loendis olevad) pole ristpäringutes lubatud.



Kas vajate veel abi?

Kas soovite rohkem valikuvariante?

Siin saate tutvuda tellimusega kaasnevate eelistega, sirvida koolituskursusi, õppida seadet kaitsma ja teha veel palju muud.

Kogukonnad aitavad teil küsimusi esitada ja neile vastuseid saada, anda tagasisidet ja saada nõu rikkalike teadmistega asjatundjatelt.

Kas sellest teabest oli abi?

Kui rahul te keelekvaliteediga olete?
Mis mõjutas teie hinnangut?
Kui klõpsate nuppu Edasta, kasutatakse teie tagasisidet Microsofti toodete ja teenuste täiustamiseks. IT-administraator saab neid andmeid koguda. Privaatsusavaldus.

Täname tagasiside eest!

×