SQL podupiti

Napomena: Želimo da vam što pre pružimo najnoviji sadržaj pomoći čim na vašem jeziku. Ova stranica je prevedena automatski i može da sadrži gramatičke greške ili netačnosti. Naš cilj je da ovaj sadržaj bude koristan. Možete li nam na dnu ove stranice saopštiti da li su vam informacije bile od koristi? Ovo je članak na engleskom jeziku za brzu referencu.

Podupit je naredba SELECT ugnežđene unutar SELECT, SELECT... U, UMETANJE... INTO, DELETE ili UPDATE ili unutar drugog podupita.

Sintaksa

Da biste kreirali podupita možete koristiti tri obrasca sintakse:

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

izraz [NE] U (sqlnaredba)

[NE] EXISTS (sqlnaredba)

Podupit ima sledeće delove:

Deo

Opis

Poređenje

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

expression

Izraz za koju se pretražuje skup rezultata podupita.

sqlstatement

Naredba SELECT koja prati isti format i pravila kao bilo koji drugi SELECT izraz. Morate biti unutar zagrada.


Napomene

Podupit možete koristiti umesto izraza u listi polja SELECT izraz ili u odredbi WHERE ili HAVING. U podupita, koristite SELECT izraz za pružanje skupu određene vrednosti za procenu u odredbe WHERE ili HAVING izraz.

Koristite predikate ANY ili SOME, koji su sinonimi za preuzimanje zapisa u glavnom upitu koji zadovoljavaju poređenje sa svim zapisima preuzetim u Podupit. Sledeći primer vraća sve proizvode čija je cena jedinice veća od svakog proizvoda prodaju po popust od 25% ili više njih:

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

SVE predikat za preuzimanje samo onih zapisa u glavnom upitu koji zadovoljavaju poređenje sa svim zapisima preuzetim u Podupit. Ako ste promenili nešto na sve u prethodnom primeru, upit bi vratio samo one proizvode čija je cena jedinice veća od svih proizvoda prodaju po popust od 25% ili više njih. Ovo je mnogo veća ograničenja.

Predikat IN za preuzimanje samo onih zapisa u glavnom upitu za koje neki zapis u Podupit sadrži jednaku vrednost. Sledeći primer vraća sve proizvode sa popusta od 25% ili više njih:

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

Nasuprot tome, možete da koristite NOT IN za preuzimanje samo onih zapisa u glavnom upitu za koje nijedan zapis u Podupit sadrži jednaku vrednost.

Predikat EXISTS (sa opcionalno ne rezervisane reči) u poređenjima tačno/netačno da biste utvrdili da li Podupit vraća sve 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, AS rezervisana reč 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.



Razvijte Office 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.

×