Hiermee wordt aangegeven welke records uit de tabellen in de FROM-component worden gewijzigd met een SELECT-, UPDATE- of DELETE-instructie.
Syntaxis
SELECT fieldlist
FROM tableexpression
WHERE criteria
Een SELECT-instructie met een WHERE-component bevat de volgende onderdelen:
Onderdeel |
Beschrijving |
Veldlijst |
De naam van het veld of de velden die moeten worden opgehaald samen met eventuele veldnaamalias, selectiepredicaten (ALL, DISTINCT, DISTINCTROW of TOP ) of andere SELECT-instructieopties. |
tableexpression |
De naam van de tabel of tabellen waaruit gegevens worden opgehaald. |
criteria |
Een expressie waaraan records moeten voldoen om in de queryresultaten te worden opgenomen. |
Opmerkingen
De Microsoft Access-database-engine selecteert de records die voldoen aan de voorwaarden in de WHERE-component. Als u geen WHERE-component opgeeft, worden alle rijen uit de tabel geretourneerd. Als u meer dan één tabel in de query opgeeft en u geen WHERE- of JOIN-component hebt opgenomen, wordt er een Cartesisch product van de tabellen gegenereerd.
WHERE is optioneel, maar volgt FROM indien opgenomen. U kunt bijvoorbeeld alle werknemers van de verkoopafdeling (WHERE Dept = 'Sales') of alle klanten tussen de 18 en 30 jaar (WHERE Age Between 18 And 30 selecteren.
Als u geen JOIN-component gebruikt om SQL-joinbewerkingen op meerdere tabellen uit te voeren, kan het resulterende Recordset-object niet worden bijgewerkt.
WHERE is vergelijkbaar met HAVING. WHERE bepaalt welke records worden geselecteerd. Evenzo geldt dat zodra records zijn gegroepeerd met GROUP BY, HAVING bepaalt welke records worden weergegeven.
Gebruik de WHERE-component om records te elimineren die u niet met een GROUP BY-component wilt groeperen.
Gebruik diverse expressies om te bepalen welke records door de SQL-instructie worden geretourneerd. Bijvoorbeeld: de volgende SQL-instructie selecteert alle werknemers wier salarissen meer zijn dan 21.000 euro:
SELECT LastName, Salary FROM Employees WHERE Salary > 21000;
Een WHERE-component kan maximaal 40 expressies bevatten die aan elkaar zijn gekoppeld door logische operatoren, zoals And en Or.
Als u een veldnaam invoert die een spatie of leesteken bevat, dient u de naam tussen vierkante haken ({}) te zetten. Zo kan een tabel met klantgegevens bijvoorbeeld informatie bevatten over bepaalde klanten:
SELECT [Customer’s Favorite Restarant]
Als u het argument criteria opgeeft, moeten letterlijke datumwaarden in de V.S.-notatie staan, ook als u de Amerikaanse versie van de Microsoft Access-database-engine niet gebruikt. Zo wordt 10 mei 1996 in Nederland geschreven als 10/5/96 en in de V.S. als 5/10/96. Sluit bij de datumwaarden het teken (#) toe, zoals weergegeven in de volgende voorbeelden.
Als u records zoekt met de datum 10 mei 1996 in een Nederlandse database, moet u de volgende SQL-instructie gebruiken:
SELECT * FROM Orders WHERE ShippedDate = #5/10/96#;
U kunt ook de functie DateValue gebruiken, die zich bewust is van de internationale instellingen die zijn vastgelegd door Microsoft Windows®. Gebruik bijvoorbeeld deze code voor de Verenigde Staten:
SELECT * FROM Orders WHERE ShippedDate = DateValue('5/10/96');
Gebruik deze code voor Nederland:
SELECT * FROM Orders WHERE ShippedDate = DateValue('10/5/96');
Opmerking: Als de kolom waarnaar in de tekenreeks met criteria wordt verwezen, van het type GUID is, wordt in de expressie met de criteria een iets andere syntaxis gebruikt:
WHERE ReplicaID = {GUID {12345678-90AB-CDEF-1234-567890ABCDEF}}
Vergeet niet de geneste accolades en afbreekstreepjes te gebruiken.