Adesea, pentru a filtra datele, va trebui să eșantionăm nu după potrivirea exactă a condiției, ci după o valoare aproximativă. Adică atunci când, de exemplu, căutăm un produs al cărui nume se potrivește cu un anumit model (expresie obișnuită) sau conține anumite simboluri sau cuvinte. În astfel de scopuri, există un operator LIKE în SQL, care caută valori aproximative. Pentru a construi un astfel de model se folosesc metacaractere (caractere speciale, pentru căutarea unei părți a valorii), și anume: „semnul procentual” (%) sau asterisc (*), „sublinierea” (_) sau „semnul de întrebare” (?) , „paranteze pătrate” ([ ]).
Să selectăm, de exemplu, înregistrări din tabelul nostru care se referă numai la produse care conțin cuvântul Skis în numele lor. Pentru a face acest lucru, vom crea un șablon potrivit:
Run SQLSELECT *
FROM Sumproduct
WHERE Product LIKE '*Skis*'
După cum puteți vedea, DBMS a selectat doar acele înregistrări în care coloana Produs conținea produse care conțineau cuvântul Skis.
Un caracter de subliniere sau un semn de întrebare este folosit pentru a înlocui un singur caracter dintr-un cuvânt. Să înlocuim toate vocalele din cuvântul Bikes cu un „semn de întrebare” (?) și să vedem rezultatul:
Run SQLSELECT *
FROM Sumproduct
WHERE Product LIKE 'B?k?s'
Metacaracterul paranteze pătrate ([ ]) este folosit pentru a specifica simultan un set de caractere în care să căutați.
SELECT *
FROM Sumproduct
WHERE City LIKE '[TN]*'
În exemplul de mai sus, am selectat înregistrări în care numele orașelor încep cu litera T sau N în câmpul City.
De asemenea, în acest caz, putem folosi un alt metacaracter care face opusul. Să adăugăm un semn de exclamare (!) la expresia noastră regulată, care va însemna „nu este egal” (pentru MS Access) sau un semn de putere (^) (pentru alte DBMS).
SELECT *
FROM Sumproduct
WHERE City LIKE '[!TN]*'
Adică, ultima interogare creată de noi va fi citită astfel: selectați toate coloanele din tabelul Sumproduct și numai acele înregistrări în care numele orașului din câmpul City nu încep cu literele T sau N. În plus, remarcăm că set de litere din metacaracterul „paranteze pătrate” corespunde doar unei poziții în text.
Putem obține un rezultat similar dacă folosim operatorul NOT pe care îl cunoaștem deja, dar cu un semn de exclamare (!) înregistrarea va fi mai scurtă.