Aanmelden met Microsoft
Meld u aan of maak een account.
Hallo,
Selecteer een ander account.
U hebt meerdere accounts
Kies het account waarmee u zich wilt aanmelden.

Een subquery is een SELECT-instructie die is genest in een SELECT, SELECT... IN INVOEGEN... DE INSTRUCTIE INTO, DELETE of UPDATE of in een andere subquery.

Syntaxis

U kunt drie syntaxisvormen gebruiken om een subquery te maken:

vergelijking [ANY | ALLE | SOME] (sqlstatement)

expression [NOT] IN (sqlstatement)

[NIET] EXISTS (sqlstatement)

Een subquery bestaat uit deze onderdelen:

Onderdeel

Beschrijving

Vergelijking

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

expressie

Een expressie waarvoor de resultatenset van de subquery wordt doorzocht.

sqlstatement

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


Opmerkingen

U kunt een subquery 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 om een set van een of meer specifieke waarden op te geven die moeten worden geëvalueerd in de WHERE- of HAVING-componentexpressie.

Gebruik het predicaat ANY of SOME, dat synoniem is, om records in de hoofdquery op te halen die voldoen aan de vergelijking met records die zijn opgehaald in de subquery. In het volgende voorbeeld worden alle producten geretourneerd waarvan de eenheidsprijs hoger is dan die van een product dat wordt verkocht met een korting van 25 procent of meer:

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

Gebruik het predicaat ALL om alleen de records in de hoofdquery op te halen die voldoen aan de vergelijking met alle records die zijn opgehaald in de subquery. Als u ANY in het vorige voorbeeld hebt gewijzigd in ALLE, retourneert de query alleen producten waarvan de eenheidsprijs hoger is dan die van alle producten die met een korting van 25 procent of meer worden verkocht. Dit is veel restrictiever.

Gebruik het predicaat IN om alleen de records in de hoofdquery op te halen waarvoor een record in de subquery een gelijke waarde bevat. In het volgende voorbeeld worden alle producten geretourneerd met een korting van 25 procent of meer:

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

Omgekeerd kunt u NOT IN gebruiken om alleen de records in de hoofdquery op te halen waarvoor geen record in de subquery een gelijke waarde bevat.

Gebruik het predicaat EXISTS (met het optionele NIET gereserveerde woord) in waar/onwaar-vergelijkingen om te bepalen of de subquery records retourneert.

U kunt ook tabelnaamaliassen in een subquery gebruiken om te verwijzen naar tabellen die worden vermeld in een FROM-component buiten de subquery. In het volgende voorbeeld worden de namen geretourneerd van werknemers waarvan de salarissen gelijk zijn aan of hoger zijn dan het gemiddelde salaris van alle werknemers met dezelfde functie. De tabel Werknemers krijgt de alias '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;

In het vorige voorbeeld is de AS- gereserveerd woord optioneel.

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



Meer hulp nodig?

Meer opties?

Verken abonnementsvoordelen, blader door trainingscursussen, leer hoe u uw apparaat kunt beveiligen en meer.

Community's helpen u vragen te stellen en te beantwoorden, feedback te geven en te leren van experts met uitgebreide kennis.

Was deze informatie nuttig?

Hoe tevreden bent u met de taalkwaliteit?
Wat heeft uw ervaring beïnvloed?
Als u op Verzenden klikt, wordt uw feedback gebruikt om producten en services van Microsoft te verbeteren. Uw IT-beheerder kan deze gegevens verzamelen. Privacyverklaring.

Hartelijk dank voor uw feedback.

×