SQL apakšvaicājumi

Piezīme.: Mēs vēlamies sniegt jums visjaunāko palīdzības saturu jūsu valodā, cik vien ātri to varam. Šī lapa ir tulkota automatizēti, un tajā var būt gramatiskas kļūdas un neprecizitātes. Mūsu nolūks ir šo saturu padarīt jums noderīgu. Vai lapas lejasdaļā varat mums pavēstīt, vai informācija jums noderēja? Ērtai atsaucei šeit ir šis raksts angļu valodā.

Apakšvaicājumu ir ligzdota atlase ATLASIET priekšraksta SELECT... IEVIETOT … UZ, DELETE vai UPDATE paziņojumu vai citā apakšvaicājumā.

Sintakse

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

salīdzinājums [JEBKURA | VISI | DAŽI] (sqlstatement)

izteiksme [NAV] PROGRAMMĀ (sqlstatement)

[NAV] IR (sqlstatement)

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

Daļa

Apraksts

salīdzinājums

izteiksme un salīdzināšanas operators, kas salīdzina izteiksmes sākumā apakšvaicājuma rezultātus.

izteiksme

Izteiksme, kura tiek meklēta apakšvaicājuma rezultātu kopu.

sql priekšraksts

Priekšraksts SELECT, ar to pašu formātu un kārtulām kā jebkuru citu priekšraksta SELECT. Ir jābūt iekļautai iekavās.


Piezīmes

Apakšvaicājumu var izmantot, nevis izteiksmes priekšraksta SELECT lauku sarakstā vai klauzulā WHERE vai HAVING. Apakšvaicājumu, tiek izmantots priekšraksts SELECT, lai sniegtu vērtību kopu vienu vai vairākus konkrētu novērtēt kur vai kam klauzula izteiksme.

Izmantojiet ANY vai some, kas ir sinonīmi, lai izgūtu ierakstus no galvenā vaicājuma, kas apmierina salīdzinājumu ar visiem ierakstiem, kas izgūti no apakšvaicājuma. Tālāk sniegtajā piemērā tiek atgriezta visu produktu, kuru vienības cena ir lielāka par jebkuru produktu pārdoto 25 procentu vai lielāku atlaidi.

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

Predikātu ALL ir jālieto, lai izgūtu tikai tos galvenā vaicājuma ierakstus, kas apmierina salīdzinājumu ar visiem ierakstiem, kas izgūti no apakšvaicājuma. Ja maināt kādu visiem iepriekšējā piemērā, vaicājums atgriež tikai tos produktus, kuru vienības cena ir lielāka par visu to produktu pārdoto 25 procentu vai lielāku atlaidi. Šī ir ierobežojošāks.

Predikātu Collas, lai izgūtu tikai tos galvenā vaicājuma, kurā kādā apakšvaicājuma ierakstā ir vienādas vērtības ierakstus. Tālāk sniegtajā piemērā tiek atgriezta visu produktu ar 25 procentu vai lielāka atlaide.

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

Savukārt, NOT IN var izmantot, lai izgūtu tikai tos galvenā vaicājuma, kurā nav apakšvaicājuma ierakstā ir vienādas vērtības ierakstus.

IR predikātu (ar papildu ne rezervētie word) ir patiess/aplams salīdzinājumi, lai noteiktu, vai apakšvaicājums atgriež visus ierakstus.

Varat arī izmantot tabulu nosaukumu aizstājvārdus apakšvaicājumā atsaukties uz tabulas uzskaitītas klauzulā FROM ārpus apakšvaicājumu. Šajā piemērā tiek atgriezta darbiniekus, kuru algas ir vienāds vai lielāks par vidējo algu visus darbiniekus ar vienādu amats nosaukumus. Tabula Employees 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;

Tālāk redzamajā piemērā kā rezervētais vārds nav obligāta.

Daži Apakšvaicājumi atļauts krustvaicājumi — konkrēti, kā predikātu (tiem, kas klauzulu WHERE). Krustvaicājumi Apakšvaicājumi kā izvadi (tiem izvēlieties sarakstā) nav atļauta.



Paplašiniet savas Office prasmes
Iepazīties ar apmācību
Esiet pirmais, kas saņem jaunās iespējas
Pievienoties Office Insider programmai

Vai šī informācija bija noderīga?

Paldies par jūsu atsauksmēm!

Paldies par atsauksmēm! Šķiet, ka varētu būt noderīgi sazināties ar kādu no mūsu Office atbalsta aģentiem.

×