Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
A) UTILIZANDO FUNCIONES:
1.- Escriba una consulta SQL que despliegue la fecha actual. Nombre esa columna como
FECHA. Ejecute su consulta.
2.- Escriba una consulta que por cada empleado despliegue su código, apellido, salario y salario
incrementado en un 15% expresado como un número entero. Nombre esta última columna como
NUEVO SALARIO. Ejecute su consulta.
4.- Escriba una consulta que despliegue el nombre de cada empleado con la primera letra en
mayúscula y todas las otras en minúscula y el largo de su nombre para todos los empleados
cuyo nombre comience con la letra J, M o A. Póngale a cada columna un nombre apropiado y
ordene esta consulta por el nombre de empleado. Ejecute su consulta.
5.- Escriba una consulta que por cada empleado despliegue el apellido y calcule el número de
meses entre hoy y la fecha en que el ingresó. Llame a esta última columna como MESES
TRABAJADOS. Ordene esta consulta por el número de meses trabajados. Redondee el número
de meses en un número entero. Ejecute su consulta.
Nota : Con sysdate 25/03/04
SELECT apellido,round(MONTHS_BETWEEN('25/03/04',fecha_ing))AS"meses
trabajados"
FROM empleados
ORDER BY "meses trabajados" desc;
Salario Soñado
-----------------------------------------------------------------
King gana 24000 mensualmente, pero desearía ganar 72000
Kochhar gana 17000 mensualmente, pero desearía ganar 51000
.............................
Higgins gana 12000 mensualmente, pero desearía ganar 36000
Gietz gana 8300 mensualmente, pero desearía ganar 24900
20 filas seleccionadas
7.- Escriba una consulta que despliegue el apellido y salario de todos los empleados. El formato
del salario es de largo 15 y debe justificarlo a la izquierda con el signo ‘$’. Nombre a esta última
columna como SALARIO. Ejecute su consulta.
APELLIDO SALARIO
------------------------- ---------------
King SSSSSSSSSS24000
Kochhar SSSSSSSSSS17000
………………
Higgins SSSSSSSSSS12000
Gietz SSSSSSSSSSS8300
20 filas seleccionadas
8.- Escriba una consulta SQL que despliegue para cada empleado, su apellido, nombre, fecha de
ingreso y los años y meses de servicio. Ponga nombres apropiados a cada columna. Ejecute su
consulta.
NOTA : Con sysdate 25/08/03
9.- Construya una Consulta SQL que para cada empleado despliegue su apellido, fecha de ingreso
y la fecha en que se revisó su salario que es el primer lunes después de 6 meses de servicio.
Nombre esta columna como REVISIÓN. El formato de salida de la fecha debe ser similar a
“Lunes, 01 de Septiembre de 2003”.
SELECT apellido,fecha_ing,
TO_CHAR(NEXT_DAY(ADD_MONTHS(fecha_ing,6),'LUNES'), 'DAY ", " DD "DE"
MONTH"," YYYY') AS "REVISION"
FROM empleados;
11.- Escriba una consulta SQL que despliegue el apellido, y comisión para todos los empleados,
use alias para esta última columna. Si un empleado no gana comisión ponga SIN COMISIÓN.
APELLIDO COMISIÓN
------------------------- -----------------
King Sin comisión
Kochhar Sin comisión
...................
Zlotkey ,2
Abel ,3
Taylor ,2
Grant ,15
.....................
Higgins Sin comisión
Gietz Sin comisión
20 filas seleccionadas
12.- Use la función DECODE para escribir una consulta que despliegue para todos sus empleados
su apellido, cargo_id y grado considerando la siguiente tabla.
CARGO_ID GRADO
AD_PRES A
ST_MAN B
IT_PROG C
SA_REP D
ST_CLERK E
Ninguno de los anteriores 0
APELLIDO CARGO_ID G
------------------------- ---------- -
King AD_PRES A
Kochhar AD_VP 0
De Haan AD_VP 0
Hunold IT_PROG C
……………….
Mourgos ST_MAN B
Rajs ST_CLERK E
Davies ST_CLERK E
…………….
Abel SA_REP D
Taylor SA_REP D
………………………
Higgins AC_MGR 0
Gietz AC_ACCOUNT 0
20 filas seleccionadas
13.- Resuelva el problema anterior, usando la expresión CASE.
SELECT APELLIDO, CARGO_ID,
CASE CARGO_ID
WHEN 'AD_PRES' THEN 'A'
WHEN 'ST_MAN' THEN 'B'
WHEN 'IT_PROG' THEN 'C'
WHEN 'SA_REP' THEN 'D'
WHEN 'ST_CLERK' THEN 'E'
ELSE '0'
END "GRADO"
FROM EMPLEADOS;