SQL: operatori con caratteri jolly

Abbiamo già discusso dell'operatore SQL LIKE, che viene utilizzato per confrontare un valore con valori simili utilizzando gli operatori jolly.

SQL supporta due operatori con caratteri jolly insieme all'operatore LIKE che sono spiegati in dettaglio nella tabella seguente.

Sr.No. Carattere jolly e descrizione
1

The percent sign (%)

Corrisponde a uno o più caratteri.

Note - MS Access utilizza il carattere jolly asterisco (*) invece del carattere jolly del segno di percentuale (%).

2

The underscore (_)

Corrisponde a un carattere.

Note - MS Access utilizza un punto interrogativo (?) Invece del trattino basso (_) per trovare la corrispondenza con un carattere.

Il segno di percentuale rappresenta zero, uno o più caratteri. Il trattino basso rappresenta un singolo numero o un carattere. Questi simboli possono essere usati in combinazione.

Sintassi

La sintassi di base di un operatore "%" 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 contiene una serie di 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 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 blocco di codice è un esempio, che visualizza tutti i record dalla tabella CUSTOMERS in cui 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 |
+----+----------+-----+-----------+----------+