SQL - Operadores curinga
Já discutimos sobre o operador SQL LIKE, que é usado para comparar um valor a valores semelhantes usando os operadores curinga.
O SQL oferece suporte a dois operadores curinga em conjunto com o operador LIKE, que são explicados em detalhes na tabela a seguir.
Sr. Não. | Curinga e descrição |
---|---|
1 | The percent sign (%) Corresponde a um ou mais caracteres. Note - O MS Access usa o caractere curinga asterisco (*) em vez do caractere curinga de sinal de porcentagem (%). |
2 | The underscore (_) Corresponde a um personagem. Note - O MS Access usa um ponto de interrogação (?) Em vez do sublinhado (_) para corresponder a qualquer caractere. |
O sinal de porcentagem representa zero, um ou vários caracteres. O sublinhado representa um único número ou um caractere. Esses símbolos podem ser usados em combinações.
Sintaxe
A sintaxe básica de um operador '%' 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 contém vários exemplos que mostram a parte WHERE com diferentes cláusulas LIKE com 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 seguintes registros.
+----+----------+-----+-----------+----------+
| 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 |
+----+----------+-----+-----------+----------+
O bloco de código a seguir é um exemplo, que exibiria todos os registros da tabela CUSTOMERS onde 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 |
+----+----------+-----+-----------+----------+