Potrivirea modelelor în interogările SQL

Folosind Wildcards pentru potrivirea inexactă

Potrivirea tiparelor SQL vă permite să căutați modele în date, dacă nu cunoașteți exact cuvântul sau fraza pe care o căutați. Acest tip de interogare SQL folosește metacaractere potrivite pentru a se potrivi cu un model, mai degrabă decât să-l precizeze exact. De exemplu, puteți utiliza macheta "C%" pentru a se potrivi oricărui șir care începe cu un capital C.

Utilizând Operatorul LIKE

Pentru a utiliza o expresie wildcard într-o interogare SQL, utilizați operatorul LIKE într-o clauză WHERE și introduceți modelul în ghilimele simple.

Utilizarea% Wildcard pentru a efectua o căutare simplă

Pentru a căuta orice angajat din baza de date cu un nume de familie care începe cu litera C, utilizați următoarea instrucțiune Transact-SQL:

SELECT * FROM angajați WHERE last_name LIKE 'C%'

Omitting Patterns Folosind NOT Keyword

Utilizați cuvântul cheie NOT pentru a selecta înregistrări care nu se potrivesc cu modelul. De exemplu, această interogare returnează toate înregistrările ale căror ultimul nume nu începe cu C:

SELECT * FROM angajați WHERE ultim_name NOT LIKE 'C%'

Cum se potrivește un model oriunde folosind% Wildcard de două ori

Utilizați două exemple de % wildcard pentru a se potrivi cu un anumit tip oriunde. Acest exemplu returnează toate înregistrările care conțin un C oriunde în ultimul nume:

SELECT * FROM angajați WHERE ultim_name LIKE '% C%'

Găsirea unei potriviri de model la o anumită poziție

Utilizați opțiunea _ wildcard pentru a returna datele dintr-o anumită locație. Acest exemplu se potrivește numai dacă C apare în a treia poziție a coloanei cu numele de ultimă generație:

SELECT * FROM angajați WHERE ultim_name LIKE '_ _C%'

Expresiile wildcard acceptate în SQL Transact

Există mai multe expresii cu metacaractere acceptate de SQL Transact:

Combinarea caracterelor pentru modele complexe

Combinați aceste metacaractere în modele complexe pentru a efectua interogări mai avansate. De exemplu, să presupunem că trebuie să construiți o listă a tuturor angajaților care au nume care încep cu o literă din prima jumătate a alfabetului, dar nu se termină cu o vocală. Ați putea utiliza următoarea interogare:

SELECT * FROM angajați WHERE ultim_name LIKE '[am]% [^ aeiou]'

În mod similar, ați putea construi o listă a tuturor angajaților cu nume de familie care constau din exact patru caractere folosind patru instanțe ale modelului _ :

SELECT * FROM angajați WHERE last_name LIKE '____'

După cum puteți spune, folosirea capabilităților de potrivire a tiparelor SQL oferă utilizatorilor de baze de date posibilitatea de a merge dincolo de întrebările simple de text și de a efectua operații de căutare avansată.