Office
Aanmelden

SQL-subquery's

Opmerking: We willen u graag zo snel mogelijk de meest recente Help-inhoud in uw eigen taal bieden. Deze pagina is automatisch vertaald en kan grammaticale fouten of onnauwkeurigheden bevatten. Wij hopen dat deze inhoud nuttig voor u is. Kunt u ons onder aan deze pagina laten weten of de informatie nuttig voor u was? Hier is het Engelstalige artikel ter referentie.

Een subquery is een SELECT-instructie genest in een SELECT, SELECT... INVOEGEN NAAR... INTO, verwijderen of UPDATE-instructie of in een andere subquery.

Syntaxis

U kunt drie soorten syntaxis gebruiken om te maken van een subquery:

vergelijking [EVENTUELE | ALLE | Sommige] (sqlstatement)

expressie [NOT] IN (sqlstatement)

[NOT] EXISTS (sqlstatement)

Een subquery heeft de volgende argumenten:

Onderdeel

Beschrijving

vergelijking

Een expressie en een vergelijkingsoperator die verschilt van de expressie met de resultaten van de subquery.

Expressie

Een expressie waarvoor de resultatenset van de subquery wordt gezocht.

sqlstatement

Een SELECT-instructie dezelfde indeling en regels als elke andere SELECT-instructie. Deze moet worden tussen haakjes.


Opmerkingen

U kunt een subquery kunt gebruiken in plaats van een expressie in de lijst met velden van een SELECT-instructie of in een WHERE- of HAVING-component. In een subquery gebruikt u een SELECT-instructie op te geven van een reeks een of meer specifieke waarden in de WHERE- of HAVING-componentexpressie wordt berekend.

Gebruik het predikaat alle of enkele die synoniem om op te halen records in de belangrijkste query die voldoen aan de vergelijking met een records dat wordt opgehaald in de subquery zijn. Het volgende voorbeeld retourneert alle producten waarvan de eenheidsprijs per groter dan van alle andere producten verkocht met een korting van 25 procent of meer is:

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

Gebruik het predicaat ALL om op te halen alleen de records in de belangrijkste query die voldoen aan de vergelijking met alle records in de subquery opgehaald. Als u een op alle in het vorige voorbeeld hebt gewijzigd, zou de query alleen waarvan de eenheidsprijs per groter dan van alle producten verkocht met een korting van 25 procent of meer is producten retourneren. Dit is dus beperktere.

Gebruik het predicaat om op te halen alleen de records in de belangrijkste query waarvoor een record in de subquery een gelijke waarde bevat. Het volgende voorbeeld retourneert alle producten met een korting van 25 procent of meer:

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

U kunt daarentegen NOT IN gebruiken om op te halen alleen de records in de belangrijkste query waarvoor geen record in de subquery een gelijke waarde bevat.

Gebruik het predicaat EXISTS (met het optionele gereserveerde woord NOT) in waar/onwaar vergelijkingen om te bepalen of de subquery alle records als resultaat geeft.

U kunt ook de naam Tabelaliassen in een subquery gebruiken om te verwijzen naar tabellen die in een FROM-component buiten de subquery worden vermeld. Het volgende voorbeeld retourneert de namen van werknemers waarvan salarissen zijn gelijk is aan of groter is dan het gemiddelde salaris van alle werknemers met dezelfde functie. De tabel werknemers krijgt de alias "t 1":

SELECT LastName, FirstName, Title, Salary FROM Employees AS T1 WHERE Salary >= (SELECT Avg(Salary) FROM Employees WHERE T1.Title = Employees.Title) Order by Title;

Klik in het voorgaande voorbeeld is de AS gereserveerd woord optioneel.

Sommige subquery's zijn toegestaan in kruistabelquery's, met name als predicaten (in de WHERE-component). Subquery's als uitvoer (die in de SELECT-lijst) zijn niet toegestaan in kruistabelquery's.



Uw Office-vaardigheden uitbreiden
Training verkennen
Als eerste nieuwe functies krijgen
Deelnemen aan Office Insiders

Was deze informatie nuttig?

Bedankt voor uw feedback.

Hartelijk dank voor uw feedback! Het lijkt ons een goed idee om u in contact te brengen met een van onze Office-ondersteuningsagents.

×