Podupit je naredba SELECT ugnežđena unutar izabrane stavke... INTO, UMETANJE... INTO, Izbriši ili AŽURIRAJ ili u drugom podupitu.

Sintaksa

Možete da koristite tri oblika sintakse da biste kreirali podupita:

Poređenje [bilo koje | SVE | NEKE] (sqlnaredba)

izraz [not] in (sqlnaredba)

Ne Postoji (sqlnaredba)

Podupit ima sledeće delove:

Deo

Opis

Uporedi

izraz i operator za poređenje koji poredi izraz sa rezultatima podupita.

izraz

Izraz za koji se pretražuje skupa rezultat upita.

sqlstatement

Naredba SELECT koja prati isti oblik i pravila kao i bilo koju drugu naredbu SELECT. Mora biti zatvoren u zagradama.


Napomene

Možete da koristite Podupit umesto izraza na listi polja naredbe SELECT ili u odredbi WHERE ili Address. U podupitu koristite naredbu SELECT da biste obezbedili skupu jednu ili više određenih vrednosti koje će se proceniti u izrazu Where ili ima.

Koristite predikat ili neki predikat, koji je sinonim za preuzimanje zapisa u glavnom upitu koji zadovoljavaju poređenje sa bilo kojim zapisima preuzetim u podupitu. Sledeći primer vraća sve proizvode čiju je cenu po jedinici veća od proizvoda koji se prodaje po popustu od 25 procenata ili više:

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

Predikat ALL koristite da biste preuzeli samo one zapise u glavnom upitu koji zadovoljavaju poređenje sa svim zapisima preuzetim u podupitu. Ako ste promenili sve u prethodnom primeru, upit će vratiti samo one proizvode čija je Jedinična cena veća od svih proizvoda koje se prodaju po popustu od 25 procenata ili više. Ovo je mnogo restriktivnije.

Korišćenje predikata za preuzimanje samo onih zapisa u glavnom upitu za koje neki zapisi u podupitu sadrže jednaku vrednost. Sledeći primer vraća sve proizvode sa popustom od 25 procenata ili više:

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

Obratno, ne možete da koristite da biste preuzeli samo one zapise u glavnom upitu za koje nijedan zapis u podupitu ne sadrži jednaku vrednost.

Korišćenje predikata "postoji" (sa opcionalnom nerezervisanom Word) u TRUE/FALSE upoređivanja kako bi se utvrdilo da li potupit vraća zapise.

Takođe možete da koristite pseudonima imena tabela u podupitu da biste upućivala na tabele navedene u odredbi FROM izvan podupita. Sledeći primer vraća imena zaposlenih čiji su plate jednake ili veće od prosečne plate svih zaposlenih koji imaju isti naslov posla. Tabeli "Zaposleni" je dat 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;

U prethodnom primeru, kao rezervisana reč je opcionalno.

Neki potupiti su dozvoljeni u unakrsnu upitima – naročito kao predikate (one u odredbi WHERE). Podupiti kao izlaz (oni na listi SELECT) nisu dozvoljeni u unakrsnu upitima.



Potrebna vam je dodatna pomoć?

Unapredite veštine
Istražite obuku
Prvi nabavite nove funkcije
Pridružite se Microsoft insajdere

Da li su vam ove informacije koristile?

Koliko ste zadovoljni kvalitetom prevoda?

Šta je uticalo na vaše iskustvo?

Imate li dodatne povratne informacije? (Opcionalno)

Hvala vam na povratnim informacijama!

×