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