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
Join

Newsletter

Nessuno spam, solo articoli interessanti ;)

Focus

Post correlati

sharding

Cosa è il database sharding?

Introduzione Ogni applicazione che utilizza un database deve pensare a come gestire un aumento delle richieste e dell’utilizzo di questa ultima senza comprometterne l’usabilità. Rendere

WITH – Common Table Expression

Le Common Table Expression forniscono una sintassi alternativa per evitare l’accumularsi di query innestate: permettono di creare delle tabelle temporanee basandosi sui risultati di una

Utilizzare la clausola ROLLUP

Talvolta voglio eseguire una query che mi fornisca dei risultati aggregati di media, min, max… ma anche dei risultati sull’intero rowset senza aggregazione. Per avere

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 ;)