GreysitoErPutoAmo

Subconsultas 1

Mar 6th, 2015
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 1.55 KB | None | 0 0
  1. /*Pagina 120*/
  2.  
  3. SELECT DNOMBRE, DEPT_NO FROM DEPART WHERE EXISTS (SELECT * FROM EMPLE WHERE EMPLE.DEPT_NO = DEPART.DEPT_NO);
  4. /* 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)*/
  5.  
  6. SELECT * FROM EMPLE, depart WHERE EMPLE.DEPT_NO = DEPART.DEPT_NO;
  7. /*Esta es la subselect de arriba, le añadimos depart ya que como está, por si sola, no funciona*/
  8.  
  9. SELECT DNOMBRE, DEPT_NO FROM DEPART WHERE DEPT_NO IN (SELECT DISTINCT DEPT_NO FROM EMPLE);
  10. /*Otra forma de hacer el select de EXISTS, en este caso con IN*/
  11.  
  12. SELECT * FROM EMPLE WHERE SALARIO = ANY (SELECT SALARIO FROM EMPLE WHERE DEPT_NO=30);
  13. /*con este ANY nos dará los datos de los empleados cuyo salario sea igual que los del dept_no 30*/
  14.  
  15. INSERT INTO EMPLE VALUES (9999,'LOPEZ','EMPLEADO',6677,'22/10/99',5000,3500,10);
  16. /*insertamos un nuevo empleado con el mismo sueldo que alguien en el departamento 20 para provar la siguiente select*/
  17.  
  18. SELECT * FROM EMPLE WHERE SALARIO = ANY (SELECT SALARIO FROM EMPLE WHERE DEPT_NO=20);
  19. /*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*/
  20.  
  21. SELECT * FROM EMPLE WHERE SALARIO < ALL (SELECT SALARIO FROM EMPLE WHERE DEPT_NO=30);
  22. /*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