Pierakstīties, izmantojot Microsoft
Pierakstīties vai izveidot kontu
Sveicināti!
Atlasīt citu kontu.
Jums ir vairāki konti
Izvēlieties kontu, ar kuru vēlaties pierakstīties.

Apakšvaicāums ir priekšraksts SELECT, kas ligzdots priekšrakstā SELECT, SELECT... INTO, INSERT... Priekšraksts INTO, DELETE vai UPDATE vai citā apakšvaicājuma.

Sintakse

Lai izveidotu apakšvaicājumu, var izmantot trīs sintakses formas:

salīdzinājums [ANY | ALL | SOME] (sql priekšraksts)

izteiksme [NOT] IN (sql priekšraksts)

[NOT] EXISTS (sql priekšraksts)

Apakšvaicājumam ir šādas daļas:

Daļa

Apraksts

salīdzinājums

Datu izteiksme un salīdzināšanas operators, kas salīdzina izteiksmi ar apakšvaicājuma rezultātiem.

izteiksme

Izteiksme, kurā tiek meklēta apakšvaicājuma rezultātu kopa.

sql priekšraksts

Priekšraksts SELECT ar tādu pašu formātu un kārtulām kā jebkurš cits priekšraksts SELECT. Tā ir jāiekļauj iekavās.


Piebildes

Varat izmantot apakšvaicājumu, nevis izteiksmi priekšraksta SELECT lauku sarakstā vai klauzulā WHERE vai HAVING. Apakšvaicājuma gadījumā jāizmanto priekšraksts SELECT, lai sniegtu vienu vai vairākas konkrētas vērtības kopu, ko novērtēt klauzulas WHERE vai HAVING izteiksmē.

Izmantojiet predikātu ANY vai SOME, kas ir sinonīmi, lai galvenajā vaicājumā izgūtu ierakstus, kas apmierina salīdzinājumu ar visiem ierakstiem, kas izgūti apakšvaicājumu. Šajā piemērā tiek atgriezti visi produkti, kuru vienības cena ir lielāka par jebkuru pārdoto produktu ar 25 vai vairāk procentu atlaidi:

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

Izmantojiet predikātu ALL, lai izgūtu tikai tos galvenā vaicājuma ierakstus, kas apmierina salīdzinājumu ar visiem ierakstiem, kas izgūti apakšvaicājumu. Ja iepriekšējā piemērā mainījušās uz VISI, vaicājums atgriezīs tikai tos produktus, kuru vienības cena ir lielāka par visu pārdoto produktu cenu ar 25 vai vairāk procentu atlaidi. Tas ir daudz ierobežojošāk.

Predikātu IN izmantojiet, lai izgūtu tikai tos galvenā vaicājuma ierakstus, kuriem daži ieraksti apakšvaicājuma satur vienādu vērtību. Šajā piemērā tiek atgriezti visi produkti ar 25 vai vairāk procentu atlaidi:

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

Savukārt NOT IN var izmantot, lai izgūtu tikai tos ierakstus galvenajā vaicājumā, kuriem neviens ieraksts apakšvaicājumam nesatur vienādu vērtību.

Izmantojiet predikātu EXISTS (ar neobligāto rezervēto vārdu NOT) patiesā/aplamā salīdzinājumi, lai noteiktu, vai apakšvaicājums atgriež ierakstus.

Varat arī izmantot tabulas nosaukumu aizstājvārdu apakšvaicājumu, lai atsauktos uz tabulām, kas norādītas klauzulā FROM ārpus apakšvaicājuma. Šajā piemērā tiek atgriezti to darbinieku vārdi, kuru algas ir vienādas vai lielākas par visu to darbinieku vidējo atalgojumu, kuriem ir vienāds amats. Tabulai Darbinieki ir piešķirts aizstājvārds "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;

Iepriekšējā piemērā AS datu rezervētais vārds nav obligāta.

Daži apakšvaicājumi ir atļauti krustvaicājuma vaicājumos, konkrēti kā predikāti (no klauzulas WHERE). Starptabtu vaicājumos apakšvaicājumi kā izvade (tie, kas ir sarakstā SELECT) nav atļauti.



Nepieciešama papildu palīdzība?

Vēlaties vairāk opciju?

Izpētiet abonementa priekšrocības, pārlūkojiet apmācības kursus, uzziniet, kā aizsargāt ierīci un veikt citas darbības.

Kopienas palīdz uzdot jautājumus un atbildēt uz tiem, sniegt atsauksmes, kā arī saņemt informāciju no ekspertiem ar bagātīgām zināšanām.

Vai šī informācija bija noderīga?

Cik lielā mērā esat apmierināts ar valodas kvalitāti?
Kas ietekmēja jūsu pieredzi?
Nospiežot Iesniegt, jūsu atsauksmes tiks izmantotas Microsoft produktu un pakalpojumu uzlabošanai. Jūsu IT administrators varēs vākt šos datus. Paziņojums par konfidencialitāti.

Paldies par jūsu atsauksmēm!

×