Los
operadores de comparación son usados en condiciones que compara una expresión con
otro valor o expresión, son usados en la cláusula WHERE.
Usando operadores de comparación
Digamos que
se desea extraer el nombre y el salario de todos los empleados que ganen menos o
$3000.
SELECT
last_name,
salary
FROM hr.employees
WHERE salary <= 3000;
El
resultado seria:
Si queremos
buscar un valor en un rango de valores debemos usar el operador BETWEEN
SELECT
last_name,
salary
FROM hr.employees
WHERE salary BETWEEN 2900 AND 3000;
Donde 2900
es el valor límite inferior y 3000 es el valor límite superior
El resultado
de la consulta seria:
Operador IN
Se usa el
operador IN para evaluar los valores que están en la columna evaluada, si el
valor que está en la columna evaluada esta en los valores o lista que contiene el operador IN, el registro es mostrado.
Es decir,
si deseamos que se muestre solo los salarios de los empleados que ganan ‘3000’,’2500’ y ‘2300’, podemos ejecutarla
consulta:
SELECT
last_name,
salary
FROM hr.employees
WHERE salary IN ('3000','2500','2300');
Cabe
agregar que si la columna evaluada no contiene uno de los valores relacionados en
la lista que recibe el operador IN, no será mostrado.
Operador
LIKE
Quizás no
se conozca el valor exacto que desea buscar, con el operador LIKE, puede usar
un comodín o parte de la palabra o valor a buscar.
El operador
LIKE, busca en una cadena de caracteres que se especifique, si existe un carácter
o expresión en el valore de la columna que contenga la cadena o carácter,
retorna true y devuelve el valor encontrado.
Si deseamos
traer todos los nombres de los empleados que inicien con la letra “S”, deberías
consultalos asi:
SELECT
last_name
,salary
FROM hr.employees
WHERE last_name LIKE 'S%';
El resultadode
ejecutar esta consulta es:
También se puede
usar el símbolo “_” para representar un solo carácter, si queremos traer todos
los empleados que en su segunda letra
tenga la letra “a” ejecutaríamos la consulta:
SELECT
last_name
,salary
FROM hr.employees
WHERE last_name LIKE '_a%';
Es necesario usar
el identificador de escape “\” en caso de tener en el campo a filtrar, en
nuestro caso el job_id contenga o
haga parte de la cadena el carácter “_”, consultemos los empleados con su
nombre y id de trabajo “job_id”:
SELECT
last_name
,job_id
FROM hr.employees;
Si deseáramos
consultar todos los job_id que iniciaran con la cadena de caracteres “SA_”
sería necesario escapar el carácter “_”, debido a que Oracle toma el carácter
como un solo carácter después de la cadena “SA”, en este caso usaríamos la
consulta:
SELECT
last_name
,job_id
FROM hr.employees
WHERE job_id LIKE '%SA\_%' ESCAPE '\';
Donde ESCAPE ‘\’ es como le indicamos al operador de comparación
LIKE que el carácter “_” hace parte de la cadena que vamos a buscar.
Operador IS NULL
Este operador identifica
busca las columnas que contengan un nulo, si fuera necesario identificar cuales
empleados tiene una comisión pct nula, podemos ejecutar la consulta:
SELECT
last_name
,job_id
,commission_pct
FROM hr.employees
WHERE commission_pct IS NULL;
De igual forma
los para el operador de comparación IS
NOT NULL indica todos los que no
tengan una comisión pct nula.