SQL – L’operatore LIKE

L’istruzione LIKE è estremamente usata in T-SQL, spesso però viene limitata all’uso del carattere % per indicare una qualsiasi stringa composta da 0 o più caratteri, ignorando che ha alcune potenzialità in più (anche se non raggiunge minimamente la profondità delle espressioni regolari. Per aggiungere le regex ad un SQL Server è necessario usare funzioni CLR come spiegato qui).

I caratteri jolly presenti in T-SQL sono i seguenti

CarattereDescrizione
%Stringa composta da zero o più caratteri
_Carattere singolo
[a-f]Carattere singolo compreso nell’intervallo ([a-f]) o nel set ([abcdef]) specificato
[^a-f]Carattere singolo non compreso nell’intervallo ([^a-f]) o nel set ([^abcdef]) specificato

Di seguito qualche esempio preso dalla documentazione ufficiale

SimboloSignificato
LIKE ’[a-cdf]’a, b, c, d oppure f
LIKE ’[ [ ]’[
LIKE ‘abc[def]’abcd, abce e abcf
LIKE ’M[^c]’Comincia con M e non è seguito da c

Pattern in OR

Se devo controllare il match con un pattern o con un altro devo spezzare il like in più chiamate, dato che non esiste il carattere |, che invece troviamo nelle regex, la soluzione più semplice è concatenare i filtri in OR a livello di query.

SET @filter_1 = '%test%'
SET @filter_2 = '%foo%'
SELECT *
FROM BAR
WHERE var LIKE @filter_1
   OR var LIKE @filter_2

Indice

Share
Ultimi articoli

Codice Pragmatico

Contatti

Per informazioni, dubbi o consulenze non esitate a contattarmi.

Lascia un messaggio

Ricevi le ultime news

Iscrivi alla newsletter

Solo articoli interessanti, promesso ;)