Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Pagina 120*/
- SELECT DNOMBRE, DEPT_NO FROM DEPART WHERE EXISTS (SELECT * FROM EMPLE WHERE EMPLE.DEPT_NO = DEPART.DEPT_NO);
- /* La subselect por si misma no funciona, y si le añadimos FROM EMPLE, DEPART no devolverá todos los dept_no (y nos debe devolver true o false)*/
- SELECT * FROM EMPLE, depart WHERE EMPLE.DEPT_NO = DEPART.DEPT_NO;
- /*Esta es la subselect de arriba, le añadimos depart ya que como está, por si sola, no funciona*/
- SELECT DNOMBRE, DEPT_NO FROM DEPART WHERE DEPT_NO IN (SELECT DISTINCT DEPT_NO FROM EMPLE);
- /*Otra forma de hacer el select de EXISTS, en este caso con IN*/
- SELECT * FROM EMPLE WHERE SALARIO = ANY (SELECT SALARIO FROM EMPLE WHERE DEPT_NO=30);
- /*con este ANY nos dará los datos de los empleados cuyo salario sea igual que los del dept_no 30*/
- INSERT INTO EMPLE VALUES (9999,'LOPEZ','EMPLEADO',6677,'22/10/99',5000,3500,10);
- /*insertamos un nuevo empleado con el mismo sueldo que alguien en el departamento 20 para provar la siguiente select*/
- SELECT * FROM EMPLE WHERE SALARIO = ANY (SELECT SALARIO FROM EMPLE WHERE DEPT_NO=20);
- /*veremos que nos devuelve a la gente del dep_no 20 pero como el nuevo empleado del dept_no 10 tiene el mismo sueldo que otro del 20 también sale*/
- SELECT * FROM EMPLE WHERE SALARIO < ALL (SELECT SALARIO FROM EMPLE WHERE DEPT_NO=30);
- /*con ALL compara todos los valores de salario con los salarios del dept_no 30, si todas las comparaciones son TRUE, ALL devuelve TRUE (aqui salen los empleados de otros departamentos cuyo salario son menores que el salario mas bajo del dept_no 30*/
Add Comment
Please, Sign In to add comment