martes, 1 de septiembre de 2015

Condición LIKE en Oracle SQL


Para condicionar en vez de utilizar un igual «=» en el que se comprueba carácter a carácter si son iguales:
('Francisco' = 'Francisco') es verdadero
('Fran     ' = 'Francisco') es falso

Con LIKE se puede condicionar utilizando comodines para realizar búsquedas como:

--Nombre de los empleados que su segunda letra, del nombre, sea una «a» minúscula.
SELECT first_name
FROM employees
WHERE first_name LIKE '_a%';

Comodines (wildcard)
Guión bajo «_» indica un carácter.
Porcentaje «%» indica cero o n caracteres.

--Nombre de los empleados que su nombre empiece por «S» y termine en «n».
SELECT first_name
FROM employees
WHERE first_name LIKE 'S%n';

Cuando tenemos la necesidad de indicar que buscamos en la cadena de caracteres uno de los caracteres comodines («_», «%»), especificamos un carácter de escape.

--Email de los empleados que contengan un guión bajo.
SELECT email
FROM employees
WHERE email LIKE '%@_%' ESCAPE '@';

En el ejemplo se ha utilizado como carácter de escape la arroba «@», podría ser otro carácter. Si coincide el carácter que especificamos fijo en la búsqueda y el de escape, simplemente se lo repite.

SELECT email
FROM employees
WHERE email LIKE '%__%' ESCAPE '_';

Si la comparación es de igualdad lo mejor es utilizar simplemente un igual «=»; en caso de solo una parte de la cadena, como por ejemplo que empiece por «A» lo mejor es utilizar la función SUBSTR y no un LIKE.

Más información: web Oracle

No hay comentarios:

Publicar un comentario