LIKE#

%LOAD ../data/employees.db

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_name job_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_name job_id
King AD_PRES
Hunold IT_PROG
Ernst IT_PROG
Lorentz IT_PROG
Rajs ST_CLERK
Davies ST_CLERK
Matos ST_CLERK
Vargas ST_CLERK
Abel SA_REP
Taylor SA_REP
Grant SA_REP
Fay MK_REP
Higgins AC_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_name hire_date
Abel 1996-05-11
Hartstein 1996-02-17