Ga naar hoofdinhoud

WHERE

Om een query te maken heb je minstens een SELECT en een FROM nodig. Met WHERE kun je het aantal rijen dat getoond moet worden beperken. De WHERE bevat een bepaalde voorwaarde waaraan voldaan moet worden.

Met onderstaande query toon je alle employees.

SELECT employee_id, first_name, last_name
FROM employees;
employee_idfirst_namelast_name
100StevenKing
101NeenaKochhar
102LexDe Haan
103AlexanderHunold
104BruceErnst
107DianaLorentz
124KevinMourgos
141TrennaRajs
142CurtisDavies
143RandallMatos
144PeterVargas
149EleniZlotkey
174EllenAbel
176JonathonTaylor
178KimberelyGrant
200JenniferWhalen
201MichaelHartstein
202PatFay
205ShelleyHiggins
206WilliamGietz

Door een WHERE toe te voegen kun je het aantal rijen beperken. Stel dat je alleen gegevens wil tonen van het personeelslid King.

SELECT employee_id, first_name, last_name
FROM employees
WHERE last_name = 'King';
employee_idfirst_namelast_name
100StevenKing

Als je zijn employee_id weet, kan het ook zo:

SELECT employee_id, first_name, last_name
FROM employees
WHERE employee_id = 100;
employee_idfirst_namelast_name
100StevenKing

Merk op dat je bij zijn achternaam (tekst) wel enkele aanhalingstekens gebruikt en bij zijn employee_id (nummer) niet. Ook bij datums gebruik je enkele aanhalingstekens.

De volgende rekenkundige operatoren kun je gebruiken in de WHERE:

  • = gelijk aan
  • > groter dan
  • >= groter dan of gelijk aan
  • < kleiner dan
  • <= kleiner dan of gelijk aan
  • <> of != ongelijk aan
SELECT employee_id, last_name, department_id
FROM employees
WHERE department_id = 90;
employee_idlast_namedepartment_id
100King90
101Kochhar90
102De Haan90

Wie verdient er 12000 of meer?

SELECT last_name, salary
FROM employees
WHERE salary >= 12000;
last_namesalary
King24000
Kochhar17000
De Haan17000
Hartstein13000
Higgins12000

Wie werkt er allemaal op de afdeling IT_PROG?

SELECT last_name, job_id
FROM employees
WHERE job_id = 'IT_PROG';
last_namejob_id
HunoldIT_PROG
ErnstIT_PROG
LorentzIT_PROG

Wie is er in dienst gekomen vanaf 1 januari 1998?

SELECT last_name, hire_date
FROM employees
WHERE hire_date >= '1998-01-01';
last_namehire_date
Lorentz1999-02-07
Mourgos1999-11-16
Matos1998-03-15
Vargas1998-07-09
Zlotkey2000-01-29
Taylor1998-03-24
Grant1999-05-24

Wie was er al in dienst vóór 1 januari 1998?

SELECT last_name, hire_date
FROM employees
WHERE hire_date <= '1998-01-01';
last_namehire_date
King1987-06-17
Kochhar1989-09-21
De Haan1993-01-13
Hunold1990-01-03
Ernst1991-05-21
Rajs1995-10-17
Davies1997-01-29
Abel1996-05-11
Whalen1987-09-17
Hartstein1996-02-17
Fay1997-08-17
Higgins1994-06-07
Gietz1994-06-07

Toon alle werknemers behalve de hoogste baas. Dat is de werknemer met als job_title AD_PRES. Dus King mag er niet in het antwoord voor komen.

SELECT first_name, last_name, job_id
FROM employees
WHERE job_id <> 'AD_PRES';
first_namelast_namejob_id
NeenaKochharAD_VP
LexDe HaanAD_VP
AlexanderHunoldIT_PROG
BruceErnstIT_PROG
DianaLorentzIT_PROG
KevinMourgosST_MAN
TrennaRajsST_CLERK
CurtisDaviesST_CLERK
RandallMatosST_CLERK
PeterVargasST_CLERK
EleniZlotkeySA_MAN
EllenAbelSA_REP
JonathonTaylorSA_REP
KimberelyGrantSA_REP
JenniferWhalenAD_ASST
MichaelHartsteinMK_MAN
PatFayMK_REP
ShelleyHigginsAC_MGR
WilliamGietzAC_ACCOUNT