BOLETÍN DE FUNCIONES SQL IES Gonzalo Nazareno 2ºASI SGBD 1. Muestra el número de empleados que ganan más de 1400. select count(*) from emp where sal+nvl(comm,0)>1400; 2. Muestra el salario medio de los conserjes (job='CLERK'). Select avg(sal) from emp where job='CLERK'; 3. Muestra el empleado que gana más junto con su salario dando el formato siguiente: 'El nombre del empleado que más gana es xxxx, y gana nnnnn' select 'El nombre del empleado que más gana es '||ename|| ', y gana '||sal as mensaje from emp where sal= (select max(sal) from emp); 4. Muestra los nombres de los conserjes ordenados por salario. select ename from emp where job='CLERK' order by sal; 5. Muestra el gasto de personal total de la empresa, sumando salarios y comisiones. select sum(sal+nvl(comm,0)) from emp; 6. Muestra un informe con los nombres de los empleados y su salario con el siguiente formato: nombre1........ salario1 nombren.........salarion select rpad(ename,12,'.'), sal from emp order by sal; 7. Muestra el número de trienios completos de cada empleado. Select ename, trunc(months_between(sysdate, hiredate)/36) as trienios from emp; 8. Muestra el total de dinero ganado por el empleado desde que se incorporó a la empresa suponiendo que el salario no ha cambiado en todo ese tiempo. Select ename, sal*(trunc(months_between(sysdate, hiredate))) from emp; 9. Muestra con dos decimales el salario diario de cada trabajador suponiendo que los meses tienen 30 días. select ename, round(sal/30,2) from emp; 10. Muestra los empleados que tengan en su nombre al menos dos As. Select ename from emp where instr(ename,'A',1,2)<>0; 11. Muestra los empleados cuyo nombre empieza por una vocal. select ename from emp where substr(ename, 1,1) in ('A','E','I','O','U') ; 12. Muestra los departamentos que tienen algún empleado cuyo nombre tiene más de cinco letras. Select dname from dept where deptno in (select deptno from emp where length(ename)>5); 13. Muestra en minúsculas los nombres de los departamentos que tienen algún empleado. Select lower(dname) from dept where deptno in (select deptno from emp); 14. Muestra un mensaje de saludo a cada empleado con el formato 'Hola nombreempleado'. Select concat('Hola ',ename) from emp; 15. Muestra el nombre de cada empleado junto con el nombre del mes en el que entró en la empresa. Select ename, to_char(hiredate,'month') from emp; 16. Muestra la hora del sistema con el formato siguiente: 'Hoy es nn del mes de nombremes del año n.nnn y son las hh y nn minutos.' select 'Hoy es '||to_char(sysdate,'dd')||' del mes de '||to_char(sysdate,'month')||' del año '|| to_char(sysdate,'yyyy')||' y son las '||to_char(sysdate,'hh')||' y '|| to_char(sysdate,'mi')|| ' minutos' from dual; 17. Muestra el nombre del primer empleado por orden alfabético. select min(ename) from emp; 18. Muestra el número de jefes que hay en la empresa. Select count(distinct(mgr)) from emp; 19. Muestra los empleados que fueron dados de alta entre el 01/03/1988 y el 30/06/1989. select ename from emp where hiredate>to_date('01/03/1988','dd/mm/yyyy') and hiredate<to_date('30/06/1989','dd/mm/yyyy'); 20. Muestra los empleados que llevan más de 6 años en la empresa. Select ename from emp where months_between(sysdate,hiredate)>72;