miércoles, 6 de agosto de 2014

Operadores de comparación






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.

No hay comentarios:

Publicar un comentario