SQL podupiti

Važno :  Ovaj je članak strojno preveden. Pogledajteizjavu o odricanju od odgovornosti. Verziju ovog članka na engleskom potražite ovdje.

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.



Napomena : Izjava o odricanju od odgovornosti za strojni prijevod: ovaj je članak preveo računalni sustav bez ljudske intervencije. Microsoft nudi strojne prijevode da bi korisnicima koji ne razumiju engleski omogućio čitanje sadržaja o Microsoftovim proizvodima, uslugama i tehnologijama. Budući da je preveden strojno, članak možda sadrži pogreške u vokabularu, sintaksi ili gramatici.

Proširite svoje vještine
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.

×