SQL - cláusula LIKE

O SQL LIKEcláusula é usada para comparar um valor a valores semelhantes usando operadores curinga. Existem dois curingas usados ​​em conjunto com o operador LIKE.

  • O sinal de porcentagem (%)
  • O sublinhado (_)

O sinal de porcentagem representa zero, um ou vários caracteres. O sublinhado representa um único número ou caractere. Esses símbolos podem ser usados ​​em combinações.

Sintaxe

A sintaxe básica de% e _ é a seguinte -

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_'

Você pode combinar um número N de condições usando os operadores AND ou OR. Aqui, XXXX pode ser qualquer valor numérico ou string.

Exemplo

A tabela a seguir tem alguns exemplos que mostram a parte WHERE com cláusulas LIKE diferentes com os operadores '%' e '_' -

Sr. Não. Declaração e descrição
1

WHERE SALARY LIKE '200%'

Encontra todos os valores que começam com 200.

2

WHERE SALARY LIKE '%200%'

Encontra qualquer valor que tenha 200 em qualquer posição.

3

WHERE SALARY LIKE '_00%'

Encontra qualquer valor que tenha 00 na segunda e na terceira posições.

4

WHERE SALARY LIKE '2_%_%'

Encontra qualquer valor que comece com 2 e tenha pelo menos 3 caracteres de comprimento.

5

WHERE SALARY LIKE '%2'

Encontra qualquer valor que termine com 2.

6

WHERE SALARY LIKE '_2%3'

Encontra qualquer valor que tenha 2 na segunda posição e termine com 3.

7

WHERE SALARY LIKE '2___3'

Encontra qualquer valor em um número de cinco dígitos que começa com 2 e termina com 3.

Tomemos um exemplo real, considere a tabela CLIENTES com os registros conforme mostrado abaixo.

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

A seguir está um exemplo, que exibiria todos os registros da tabela CLIENTES, onde o SALÁRIO começa com 200.

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

Isso produziria o seguinte resultado -

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