Clausola T-SQL - LIKE
Il MS SQL Server LIKEviene utilizzata per confrontare un valore con valori simili utilizzando operatori con caratteri jolly. Ci sono due caratteri jolly usati insieme all'operatore LIKE:
- Il segno di percentuale (%)
- Il carattere di sottolineatura (_)
Il segno di percentuale rappresenta zero, uno o più caratteri. Il trattino basso rappresenta un singolo numero o carattere. I simboli possono essere utilizzati in combinazione.
Sintassi
Di seguito è riportata la sintassi di base di% e _.
SELECT *\column-list FROM table_name
WHERE column LIKE 'XXXX%'
or
SELECT *\column-list FROM table_name
WHERE column LIKE '%XXXX%'
or
SELECT *\column-list FROM table_name
WHERE column LIKE 'XXXX_'
or
SELECT *\column-list FROM table_name
WHERE column LIKE '_XXXX'
or
SELECT *\column-list FROM table_name
WHERE column LIKE '_XXXX_'
È possibile combinare un numero N di condizioni utilizzando gli operatori AND o OR. XXXX può essere qualsiasi valore numerico o stringa.
Esempio
Di seguito sono riportati alcuni esempi che mostrano la parte WHERE con clausole LIKE diverse con operatori '%' e '_'.
Suor n | Dichiarazione e descrizione |
---|---|
1 | WHERE SALARY LIKE '200%' Trova tutti i valori che iniziano con 200 |
2 | WHERE SALARY LIKE '%200%' Trova tutti i valori che hanno 200 in qualsiasi posizione |
3 | WHERE SALARY LIKE '_00%' Trova tutti i valori che hanno 00 nella seconda e terza posizione |
4 | WHERE SALARY LIKE '2_%_%' Trova tutti i valori che iniziano con 2 e sono lunghi almeno 3 caratteri |
5 | WHERE SALARY LIKE '%2' Trova tutti i valori che terminano con 2 |
6 | WHERE SALARY LIKE '_2%3' Trova tutti i valori che hanno un 2 nella seconda posizione e terminano con un 3 |
7 | WHERE SALARY LIKE '2___3' Trova tutti i valori in un numero di cinque cifre che iniziano con 2 e finiscono con 3 |
Considera la tabella CLIENTI con i seguenti record.
ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 MP 4500.00
7 Muffy 24 Indore 10000.00
Il seguente comando è un esempio, che visualizzerà tutti i record dalla tabella CUSTOMERS dove SALARY inizia con 200.
SELECT * FROM CUSTOMERS
WHERE SALARY LIKE '200%';
Il comando precedente produrrà il seguente output.
ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
3 kaushik 23 Kota 2000.00