SQL podupiti

Važno : Ovaj članak je mašinskog prevede potražite u članku Odricanje odgovornosti. O referencu pronaći verzija ovaj članak ovde na engleskom jeziku.

Podupit je naredba SELECT koja je ugnežđena unutar naredbe SELECT, SELECT…INTO, INSERT…INTO, DELETE ili UPDATE ili unutar drugog podupita.

Sintaksa

Za kreiranje podupita možete koristiti tri obrasca sintakse:

poređenje [ANY | ALL | SOME] (sqlnaredba)

izraz [NOT] IN (sqlnaredba)

[NOT] EXISTS (sqlnaredba)

Podupit ima sledeće delove:

Deo

Opis

poređenje

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

izraz

Izraz za koji se traži skup rezultata podupita.

sqlnaredba

Naredba SELECT koja prati isti format i pravila kao svaka druga naredba SELECT. Ona mora biti ograđena zagradama.


Primedbe

Podupit možete koristiti umesto izraza u listi polja naredbe SELECT ili u odredbi WHERE ili HAVING. U podupitu naredbu SELECT koristite da biste vratili skup određenih vrednosti koje je potrebno proračunati u izrazu odredbe WHERE ili HAVING.

Predikate ANY ili SOME, koji su sinonimi, koristite za preuzimanje zapisa u glavnom upitu koji zadovoljava poređenje sa svim zapisima preuzetim u podupitu. Sledeći primer vraća sve proizvode čija je cena jedinice veća od svakog proizvoda prodatog sa popustom 25 procenata ili više:

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

Predikat ALL možete koristiti za preuzimanje samo onih zapisa u glavnom upitu koji zadovoljavaju poređenje sa svim zapisima preuzetim u podupitu. Upit bi vratio samo one proizvode čija je cena po jedinici veća od cene svih proizvoda koji su prodati sa popustom od 25 procenata ili više ako biste u prethodnom primeru promenili ANY u ALL. Ovo je u mnogo većoj meri ograničavajuće.

Predikat IN možete koristiti za preuzimanje samo onih zapisa u glavnom upitu za koje neki zapis u podupitu sadrži 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);

U suprotnom, možete koristiti predikat NOT IN za preuzimanje samo onih zapisa u glavnom upitu za koje nijedan zapis u podupitu ne sadrži jednaku vrednost.

Predikat EXISTS možete koristiti (sa opcionalnom rezervisanom rečju NOT) u poređenjima tačno/netačno da biste odredili da li podupit vraća neke zapise.

Ime pseudonime tabele u podupita možete da koristite i upućivanje na tabele navedene u odredbi FROM izvan podupita. Sledeći primer vraća imena zaposlene čije su plate jednaka ili veća od prosečne plate zaposlenih koji imaju isto radno mesto. Tabela "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, rezervisana reč AS je opcionalna.

Neki podupiti su dozvoljeni u unakrsni upiti – tačnije, kao predikati (oni u odredbi WHERE). Podupiti u vidu izlaza (oni u listi SELECT) nije dozvoljena u unakrsni upiti.



Napomena : Odricanje odgovornosti mašinskog prevođenja: ovaj članak je preveden sistem računara bez ljudski interventne. Microsoft nudi ove mašinskog prevoda da pomogne koja nije na engleskom govornih korisnicima da uživate u sadržaju za Microsoft proizvode, usluge i tehnologijama. U članku bio mašinskog prevesti, može da sadrži greške u rečnik, sintaksa ili gramatiku.

Unapredite veštine
Istražite obuku
Prvi nabavite nove funkcije
Pridružite se Office Insider korisnicima

Da li su vam ove informacije koristile?

Hvala vam na povratnim informacijama!

Hvala za povratne informacije! Zvuči da će biti od pomoći ako vas povežemo sa našim agentima Office podrške.

×