Merkkijonojen kohdalla voidaan tehdä hakuja myös osittain täsmäävillä arvoilla. Tämä tapahtuu operaattorilla LIKE varaamalla kaksi erikoismerkkiä normaalista poikkeavaan käyttöön.
/* Haetaan niiden sukunimet, joiden nimi alkaa M-kirjaimella. */
SELECT sukunimi
FROM Oppilaat
WHERE sukunimi LIKE 'M%'
|
Sukunimi |
|
Meikäläinen |
|
Meikäläinen |
/* Haetaan niiden sukunimet, joiden nimi loppuu nen-merkkeihin. */
SELECT sukunimi
FROM Oppilaat
WHERE sukunimi LIKE '%nen'
|
sukunimi |
|
Lahtonen |
|
Heinonen |
|
Meikäläinen |
|
Meikäläinen |
/* Haetaan niiden sukunimet ja etunimet, joiden etunimi on mikä tahansa viisi merkkiä pitkä nimi. */
SELECT sukunimi, etunimi
FROM Oppilaat
WHERE etunimi LIKE '_____' /* viisi (5) kappaletta alaviivoja */
|
sukunimi |
etunimi |
|
Lahtonen |
Tommi |
|
Heinonen |
Petri |
|
Meikäläinen |
Maija |
|
Wanha |
Gubbe |
|
Vilkas |
Ville |
|
Wanha |
Gubbe |
Joissakin ohjelmistoissa käytetään asteriskia (*) prosenttimerkin (%)-merkin sijaan ja kysymysmerkkiä (?)-merkkiä alleviivausmerkin (_)-merkin sijaan (kuten Microsoft Access).
Jos halutaan erityisesti hakea % tai _ merkkejä niin pitää määritellä jokin merkki jolla voidaan ilmaista että halutaan käsitellä % tai _ -merkkejä niiden literaalisessa merkityksessä. Tämä onnistuu ESCAPE-määreellä. Eli jos haluamme etsiä merkkijonot joissa esiintyy %-merkkejä joudumme tekemään haun tavallista =-operaattoria käyttäen. LIKE-operaattorin yhteydessä joudumme laittamaan jonkun ESCAPE-määreellä kerrotun merkin kaikkien % tai _ -merkkien eteen jos haluamme että kyseisessä kohdassa merkkijonoa pitää olla juuri % tai _ -merkki eikä mitä tahansa merkkejä.
/* Haetaan niiden sukunimet ja etunimet joiden etunimi alkaa %-merkillä ja loppuu _-merkkiin :)*/
SELECT sukunimi, etunimi
FROM Oppilaat
WHERE etunimi LIKE '!%%!_' ESCAPE !
|
sukunimi |
etunimi |