Prisijunkite prie „Microsoft“
Prisijunkite arba sukurkite paskyrą.
Sveiki,
Pasirinkti kitą paskyrą.
Turite kelias paskyras
Pasirinkite paskyrą, kurią naudodami norite prisijungti.

Antrinė užklausa yra select sakinys, įdėtas į SELECT, SELECT... Į, ĮTERPTI... SAKINYS INTO, DELETE arba UPDATE arba kitoje antrinėje užklausoje.

Sintaksė

Norėdami sukurti antrinę užklausą, galite naudoti tris sintaksės formas:

palyginimas [BET KURIS | VISI | SOME] (sqlstatement)

reiškinys [NOT] IN (sqlstatement)

[NOT] EXISTS (sqlstatement)

Antrinę užklausą sudaro šios dalys:

Dalis

Aprašas

Palyginimas

išraiška ir lyginimo operatorius, kuris lygina reiškinį su antrinės užklausos rezultatais.

išraiška

Išraiška, kurios antrinės užklausų rezultatų rinkinyje ieškoma.

sqlstatement

Sakinys SELECT, pagal tą patį formatą ir taisykles kaip ir bet kuris kitas SELECT sakinys. Jis turi būti įdėtas į skliaustus.


Pastabos

Galite naudoti antrinę užklausą vietoj išraiškos sakinio SELECT laukų sąraše arba sąlygoje WHERE arba HAVING. Antrinėje užklausoje naudojate sakinį SELECT, kad pateiktumėte vienos ar daugiau konkrečių reikšmių rinkinį, kurį galėtumėte įvertinti sąlygos WHERE arba HAVING išraiškoje.

Naudokite bet kurią arba KAI kurią taisyklės sąlygą, kuri yra sinoniminė, kad gautumėte įrašus pagrindinėje užklausoje, kurie atitinka palyginimą su bet kuriais įrašais, gautais antrinėje užklausoje. Toliau pateiktame pavyzdyje pateikiami visi produktai, kurių vieneto kaina didesnė už bet kurio produkto, parduoto su 25 ar daugiau procentų nuolaida, kainą:

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

Naudokite taisyklės sąlygą ALL, jei norite gauti tik tuos pagrindinės užklausos įrašus, kurie atitinka palyginimą su visais įrašais, gautais antrinėje užklausoje. Jei ankstesniame pavyzdyje pakeitėte BET į ALL, užklausa pateiks tik tuos produktus, kurių vieneto kaina yra didesnė už visų produktų, parduotų su 25 ar daugiau procentų nuolaida, vieneto kainą. Tai daug labiau ribojanti.

Taisyklės sąlygą IN naudokite norėdami gauti tik tuos pagrindinės užklausos įrašus, kurių kai kuriuose antrinės užklausos įrašuose yra vienodos reikšmės. Toliau pateiktame pavyzdyje pateikiami visi produktai, kuriems taikoma 25 procentų arba didesnė nuolaida:

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

Ir atvirkščiai, galite naudoti NOT IN, kad gautumėte tik tuos įrašus pagrindinėje užklausoje, kurių joks įrašas antrinėje užklausoje neturi vienodos reikšmės.

Naudokite EXISTS taisyklės sąlygą (su pasirinktiniu NOT rezervuotuoju žodžiu) palyginimuose teisinga arba klaidinga, kad nustatytumėte, ar antrinė užklausa pateikia įrašus.

Taip pat galite naudoti lentelės pavadinimo pseudonimus antrinėje užklausoje, kad nurodytumėte lenteles, išvardytas sąlygoje FROM, esančioje už antrinės užklausos ribų. Toliau pateiktame pavyzdyje pateikiami darbuotojų vardai, kurių atlyginimai yra lygūs arba didesni už visų darbuotojų, turinčių tą pačią pareigas, vidutinį atlyginimą. Lentelėje Darbuotojai nurodytas pseudonimas "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;

Ankstesniame pavyzdyje AS rezervuotasis žodis yra pasirinktinis.

Kai kurios antrinės užklausos leidžiamos kryžminėse užklausose, ypač kaip taisyklės sąlygos sąlygos (sąlygos WHERE). Antrinės užklausos kaip išvestis (sąraše SELECT) kryžminėse užklausose neleidžiamos.



Reikia daugiau pagalbos?

Norite daugiau parinkčių?

Sužinokite apie prenumeratos pranašumus, peržiūrėkite mokymo kursus, sužinokite, kaip apsaugoti savo įrenginį ir kt.

Bendruomenės padeda užduoti klausimus ir į juos atsakyti, pateikti atsiliepimų ir išgirsti iš ekspertų, turinčių daug žinių.

Ar ši informacija buvo naudinga?

Ar esate patenkinti kalbos kokybe?
Kas turėjo įtakos jūsų įspūdžiams?
Paspaudus mygtuką Pateikti, jūsų atsiliepimai bus naudojami tobulinant „Microsoft“ produktus ir paslaugas. Jūsų IT administratorius galės rinkti šiuos duomenis. Privatumo patvirtinimas.

Dėkojame už jūsų atsiliepimą!

×