SQL podupiti

Napomena:  Željeli bismo vam pružiti najnoviji sadržaj pomoći što je brže moguće i to na vašem jeziku. Ova je stranica strojno prevedena te može sadržavati gramatičke pogreške ili netočnosti. Naša je namjera da vam ovaj sadržaj bude koristan. Možete li nam pri dnu ove stranice javiti jesu li vam ove informacije bile korisne? Kao referencu možete pogledati i članak na engleskom jeziku .

Podupit je naredba SELECT ugniježđena unutar naredbi SELECT, SELECT...INTO, INSERT...INTO, DELETE, UPDATE ili unutar drugog podupita.

Sintaksa

Za stvaranje podupita možete upotrijebiti tri oblika sintakse:

usporedba [ANY | ALL | SOME] (sqlnaredba)

izraz [NOT] IN (sqlnaredba)

[NOT] EXISTS (sqlnaredba)

Podupit se sastoji od sljedećih dijelova:

Dio

Opis

usporedba

izraz i operator usporedbe koji uspoređuje izraz s rezultatima podupita.

izraz

Izraz za kojim se skup rezultata podupita pretražuje.

sqlnaredba

Naredba SELECT koja slijedi isto oblikovanje i pravila kao i bilo koja druga naredba SELECT. Mora biti zatvorena zagradama.


Napomene

Umjesto izraza, na popisu polja naredbe SELECT ili u uvjetima WHERE i HAVING možete koristiti podupit. U podupitu, naredbu SELECT koristite za dobavljanje skupa određenih vrijednosti za procjenu u izrazu uvjeta WHERE ili HAVING.

Predikate ANY ili SOME, koji su sinonimi, koristite za učitavanje zapisa u glavnom upitu koji zadovoljavaju usporedbu s bilo kojim zapisima učitanima u podupitu. Sljedeći primjer vraća sve proizvode čija je jedinična cijena veća od cijene bilo kojeg proizvoda prodanog uz 25 posto popusta ili više:

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

Predikat ALL koristite za učitavanje samo onih zapisa u glavnom upitu koji zadovoljavaju usporedbu sa svim zapisima učitanima u podupitu. Ako ste u prethodnom primjeru ANY promijenili u ALL, upit će vratiti samo one proizvode čija je jedinična cijena veća od one proizvoda prodanih uz popust od 25 posto ili više. Ovo je mnogo restriktivnije.

Predikat IN koristite za učitavanje samo onih zapisa u glavnom upitu za koje neki zapis u podupitu sadrži jednaku vrijednosti. Sljedeći primjer vraća sve proizvode s popustom od 25 posto ili više

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

Obratno, NOT IN možete koristiti za učitavanje samo onih zapisa u glavnom upitu za koje nijedan zapis u podupitu ne sadrži jednaku vrijednost.

Predikat EXISTS (s neobaveznom rezerviranom riječi NOT) koristite u usporedbama true/false kako biste odredili vraća li podupit bilo kakve zapise.

Da biste se pozvali na tablice popisane u uvjetu FROM izvan podupita možete koristiti i pseudonima naziv tablice u podupita. Sljedeći primjer vraća imena zaposlenike čije su plaće jednaka ili veća od Prosječna plaća svih zaposlenika isti naziv radnog mjesta. Tablica Zaposlenici dodijeljen je 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 primjeru, rezervirana riječ AS nije obavezna.

Neki podupiti dopušteni su u unakrsnim upitima – Konkretno, kao predikati (u uvjetu WHERE). Nije dopušteno podupiti kao rezultat (one na popisu odaberite) u unakrsnim upitima.



Proširite svoje vještine korištenja sustava Office
Istražite osposobljavanje

Jesu li vam ove informacije bile korisne?

Hvala vam na povratnim informacijama!

Hvala vam na povratnim informacijama! Čini se da bi vam pomoglo kad bismo vas povezali s nekim od naših agenata podrške za Office.

×