Antrinės SQL užklausos

Pastaba: Norėtume jums kuo greičiau pateikti naujausią žinyno turinį jūsų kalba. Šis puslapis išverstas automatiškai, todėl gali būti gramatikos klaidų ar netikslumų. Mūsų tikslas – padaryti, kad šis turinys būtų jums naudingas. Gal galite šio puslapio apačioje mums pranešti, ar informacija buvo naudinga? Čia yra straipsnis anglų kalba, kuriuo galite pasinaudoti kaip patogia nuoroda.

Antrinėje užklausoje yra sakinys SELECT, įdėtos į pasirinkti, pasirinkite... ĮTERPTI Į... Į, naikinti arba naujinti patvirtinimo arba kitą antrinėje užklausoje.

Sintaksė

Sukurti antrinėje užklausoje galite naudoti trijų rūšių sintaksė:

palyginimas [BET | VISI | Kai kurie] (sqlstatement)

išraiška [NE] – (Sqlstatement)

[NE] EXISTS (sqlstatement)

Antrinės užklausos sudarytas iš trijų dalių:

Dalis

Aprašas

palyginimas

Yra išraiška ir lyginimo operatorių, kuri lygintų išraišką į antrinės užklausos rezultatus.

reiškinys

Reiškinys, kurio ieškoma, antrinės užklausos rezultatų rinkinį.

sqlstatement

SELECT sakiniu SELECT sakinį po vienodą formatą ir taisykles. Turi būti rašoma skliausteliuose.


Pastabos

Vietoj išraiška laukų sąraše pasirinkite patvirtinimo arba WHERE arba HAVING galite naudoti antrinėje užklausoje. Antrinę užklausą, naudojate sakinys SELECT – nustatyti vieną ar daugiau konkrečių reikšmių įvertinti kur arba kyla sąlyga išraiška.

Naudokite bet kurį arba kai tarinys, kuris yra sinonimai, gauti Pagrindinis užklausą įrašus, kurie atitinka palyginimas su visus įrašus, gauta, kad antrinės užklausos. Pateiktame pavyzdyje pateikiama visų produktų, kurių vieneto kaina yra didesnė nei bet kurio produkto parduodama 25 procentai ar daugiau nuolaida:

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

Naudoti visus predikato gauti tik tuos įrašus, pagrindiniame užklausą, atitinkančius palyginimas su visus įrašus, gauta, kad antrinėje užklausoje. Jei pakeitėte bet kurį visiems ankstesniame pavyzdyje, užklausos būtų pateikti tik tų produktų, kurių vieneto kaina yra didesnė nei visų produktų parduodama 25 procentai ar daugiau nuolaida. Tai yra labiau apribota.

Naudoti į predikato gauti tik tuos įrašus, pagrindiniame užklausos, kurios kai įrašą į antrinėje užklausoje yra lygus reikšmė. Pateiktame pavyzdyje pateikiama visų produktų su nuolaida 25 procentai ar daugiau:

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

Priešingai, galite naudoti NOT IN gauti tik tuos įrašus, pagrindiniame užklausos, kurios nėra įrašą į antrinėje užklausoje yra lygus reikšmė.

Naudoti EXISTS predikato (su pasirenkama ne rezervuotas žodis), teisinga/klaidinga palyginimas, norint nustatyti, ar į antrinės užklausos grąžina visus įrašus.

Lentelės pavadinimas pseudonimus galite naudoti antrinėje užklausoje nurodyti už į antrinės užklausos sąlyga from lentelės. Pateiktame pavyzdyje pateikiama darbuotojus, kurių darbo užmokesčio yra lygi arba didesnė nei vidutinis užmokesčio visų darbuotojų su tuo pačiu pavadinimu darbo vardus. Lentelė darbuotojai pateikiamas pseudonimą "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, kaip rezervuotasis žodis yra pasirinktinis.

Kryžminės užklausos leidžiami keli antrines užklausas – būtent, kaip sąlygas (tie Sąlygoje WHERE). Kryžminės užklausos neleidžiama antrines užklausas kaip išvestis (ir pasirinkite sąrašas).



Tobulinkite savo „Office“ įgūdžius
Ieškoti mokymo
Pirmiausia gaukite naujų funkcijų
Prisijunkite prie „Office Insider“ dalyvių

Ar ši informacija buvo naudinga?

Dėkojame už jūsų atsiliepimus!

Dėkojame už jūsų atsiliepimą! Panašu, kad gali būti naudinga jus sujungti su vienu iš mūsų „Office“ palaikymo agentų.

×