SQL - Operadores comodín
Ya hemos hablado del operador SQL LIKE, que se utiliza para comparar un valor con valores similares utilizando los operadores comodín.
SQL admite dos operadores comodín junto con el operador LIKE que se explican en detalle en la siguiente tabla.
No Señor. | Comodín y descripción |
---|---|
1 | The percent sign (%) Coincide con uno o más caracteres. Note - MS Access utiliza el carácter comodín de asterisco (*) en lugar del carácter comodín de signo de porcentaje (%). |
2 | The underscore (_) Coincide con un carácter. Note - MS Access usa un signo de interrogación (?) En lugar del guión bajo (_) para coincidir con cualquier carácter. |
El signo de porcentaje representa cero, uno o varios caracteres. El guión bajo representa un solo número o un carácter. Estos símbolos se pueden utilizar en combinaciones.
Sintaxis
La sintaxis básica de un operador '%' y un operador '_' es la siguiente.
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_'
Puede combinar N número de condiciones utilizando los operadores AND u OR. Aquí, XXXX podría ser cualquier valor numérico o de cadena.
Ejemplo
La siguiente tabla tiene varios ejemplos que muestran que la parte WHERE tiene diferentes cláusulas LIKE con operadores '%' y '_'.
No Señor. | Declaración y descripción |
---|---|
1 | WHERE SALARY LIKE '200%' Encuentra cualquier valor que comience con 200. |
2 | WHERE SALARY LIKE '%200%' Encuentra cualquier valor que tenga 200 en cualquier posición. |
3 | WHERE SALARY LIKE '_00%' Encuentra cualquier valor que tenga 00 en la segunda y tercera posición. |
4 | WHERE SALARY LIKE '2_%_%' Busca cualquier valor que comience con 2 y tenga al menos 3 caracteres de longitud. |
5 | WHERE SALARY LIKE '%2' Encuentra cualquier valor que termine en 2. |
6 | WHERE SALARY LIKE '_2%3' Encuentra cualquier valor que tenga un 2 en la segunda posición y termine con un 3. |
7 | WHERE SALARY LIKE '2___3' Encuentra cualquier valor en un número de cinco dígitos que comience con 2 y termine con 3. |
Tomemos un ejemplo real, considere la tabla CLIENTES que tiene los siguientes 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 |
+----+----------+-----+-----------+----------+
El siguiente bloque de código es un ejemplo, que mostraría todos los registros de la tabla CLIENTES donde SALARIO comienza con 200.
SQL> SELECT * FROM CUSTOMERS
WHERE SALARY LIKE '200%';
Esto produciría el siguiente resultado.
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
+----+----------+-----+-----------+----------+