Ga naar hoofdinhoud

LIKE

LIKE maakt gebruikt van jokers. Er zijn twee soorten jokers. Met het procent teken (%) kun je zoeken naar patronen in 0 of meer karakters. Het underscore teken (_) kun je gebruiken als een joker voor één karakter. Als je LIKE gebruikt, moet je dus altijd minstens één van de twee jokers inzetten maar je kunt ze combineren!

Toon alle werknemers waarvan de achternaam met een 'H' begint.

SELECT last_name
FROM employees
WHERE last_name LIKE 'H%';
last_name
Hunold
Hartstein
Higgins

Toon alle werknemers die de letter 'a' in de achternaam hebben. Merk op dat dit ook de eerste letter kan zijn, hoewel dat dan de hoofdletter 'A' is.

SELECT last_name
FROM employees
WHERE last_name LIKE '%a%';
last_name
Kochhar
De Haan
Rajs
Davies
Matos
Vargas
Abel
Taylor
Grant
Whalen
Hartstein
Fay

Toon alle werknemers waarvan de tweede letter van de achternaam een 'o' is. Voor het eerste karakter gebruik je dus de underscore, dan zoek je naar de letter 'o' en met het procentteken kijk je in de rest van de naam.

SELECT last_name
FROM employees
WHERE last_name LIKE '_o%';
last_name
Kochhar
Lorentz
Mourgos

Escape teken. Als je zoekt naar een underscore of het procentteken en je wil niet deze twee tekens inzetten als joker maar echt zoeken naar die tekens, dan moet je een backslash (\) zetten vóór de underscore of het procentteken. We zeggen dan dat je de backslash moet gebruiken als een escape teken.

Toon alle werknemers met een job_id waarvan het job_id een underscore bevat gevolgd door een 'R'.

SELECT last_name, job_id
FROM employees
WHERE job_id LIKE '%\_R%';
last_namejob_id

Als je de backslash weglaat in de query krijg je onderstaand resultaat. Dat zijn alle job_id's met een 'R' in de job_id.

SELECT last_name, job_id
FROM employees
WHERE job_id LIKE '%_R%';
last_namejob_id
KingAD_PRES
HunoldIT_PROG
ErnstIT_PROG
LorentzIT_PROG
RajsST_CLERK
DaviesST_CLERK
MatosST_CLERK
VargasST_CLERK
AbelSA_REP
TaylorSA_REP
GrantSA_REP
FayMK_REP
HigginsAC_MGR

Ook voor datums kun je LIKE gebruiken. Wie is er in dienst gekomen in 1996?

SELECT last_name, hire_date
FROM employees
WHERE hire_date LIKE '1996%';
last_namehire_date
Abel1996-05-11
Hartstein1996-02-17