SQL - clausola LIKE

L'SQL LIKEviene utilizzata per confrontare un valore con valori simili utilizzando operatori con caratteri jolly. Sono disponibili due caratteri jolly utilizzati 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. Questi simboli possono essere utilizzati in combinazioni.

Sintassi

La sintassi di base di% e _ è la seguente:

SELECT FROM table_name
WHERE column LIKE 'XXXX%'

or 

SELECT FROM table_name
WHERE column LIKE '%XXXX%'

or

SELECT FROM table_name
WHERE column LIKE 'XXXX_'

or

SELECT FROM table_name
WHERE column LIKE '_XXXX'

or

SELECT FROM table_name
WHERE column LIKE '_XXXX_'

È possibile combinare un numero N di condizioni utilizzando gli operatori AND o OR. Qui, XXXX potrebbe essere qualsiasi valore numerico o stringa.

Esempio

La tabella seguente ha alcuni esempi che mostrano la parte WHERE con clausole LIKE diverse con operatori '%' e '_' -

Sr.No. 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.

Facciamo un esempio reale, consideriamo la tabella CLIENTI con i record come mostrato di seguito.

+----+----------+-----+-----------+----------+
| 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 |
+----+----------+-----+-----------+----------+

Di seguito è riportato un esempio, che visualizzerebbe tutti i record dalla tabella CLIENTI, dove lo STIPENDIO inizia con 200.

SQL> SELECT * FROM CUSTOMERS
WHERE SALARY LIKE '200%';

Ciò produrrebbe il seguente risultato:

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 |
|  3 | kaushik  |  23 | Kota      |  2000.00 |
+----+----------+-----+-----------+----------+