11
1)
select nazwisko,SUBSTR(etat,0,2) || id_szefa from pracownicy;
2)
select nazwisko,TRANSLATE(nazwisko,'KLM','XXX') from pracownicy;
3)
select nazwisko from pracownicy WHERE SUBSTR(nazwisko,0,(LENGTH(nazwisko)/2)) LIKE '%L%';
4)
select nazwisko,ROUND((placa_pod+NVL(placa_dod,0))*1.15) from pracownicy;
5)
select nazwisko, placa_pod*0.2 AS INWESTYCJA,(placa_pod*0.2)*POWER((1+0.1),10) AS KAPITAL, ((placa_pod*0.2)*POWER((1+0.1),10))-(placa_pod*0.2)AS ZYSK from pracownicy;
6)
select nazwisko, zatrudniony, EXTRACT(YEAR from (sysdate - zatrudniony) YEAR TO MONTH) AS staz from pracownicy;
7)
select nazwisko, to_char(zatrudniony,'MONTH') || ' , ' || to_char(zatrudniony,'DD YYYY') AS DZIEŃ_ZATRUDNIENIA from pracownicy;
select nazwisko, to_char(zatrudniony,'MONTH, DD YYYY') AS DZIEŃ_ZATRUDNIENIA from pracownicy;
8)
select to_char(current_date,'DAY') AS DZIŚ from dual;
select to_char(sysdate,'DAY') AS DZIŚ from dual;
9)
select nazwa,adres,(CASE WHEN adres like 'PIOTROWO%' THEN 'Nowe Miasto' WHEN adres like 'WLODKOWICA%' THEN 'Grunwald' ELSE 'Stare Miasto' END) AS Dzielnica from zespoly;
10)
select nazwisko,placa_pod, (CASE WHEN placa_pod > 480 THEN 'Powyżej 480' WHEN placa_pod = 480 THEN 'Dokładnie 480' ELSE 'Poniżej 480' END) AS PRÓG from
pracownicy;
11)
select nazwisko,placa_pod,DECODE(SIGN(placa_pod - 480),0,'Dokladnie 480',1,'Powyzej 480',-1,'Ponizej 480') AS PROG from pracownicy;
12)
select MAX(placa_pod),MIN(placa_pod),MAX(placa_pod)-MIN(placa_pod) AS RÓŻNICA from pracownicy;
13)
select etat,AVG(placa_pod) from pracownicy GROUP BY etat ORDER BY AVG(placa_pod) DESC;
14)
select COUNT(*) AS PROFESOROWIE from pracownicy WHERE etat like 'PROFESOR';
15)
select id_zesp,SUM(placa_pod+NVL(placa_dod,0)) AS SUMARYCZNE_PŁACE from pracownicy GROUP BY id_zesp ORDER BY id_zesp;
16)
select id_szefa,MIN(placa_pod) from pracownicy GROUP BY id_szefa ORDER BY id_szefa;
17)
select id_zesp,COUNT(*) AS ILU_PRACUJE from pracownicy GROUP BY id_zesp HAVING COUNT(*)>3 ORDER BY ILU_PRACUJE DESC;
18)
select etat,AVG(placa_pod) AS ŚREDNIA,COUNT(*) AS LICZBA from pracownicy WHERE zatrudniony<'1990-01-01' GROUP BY etat;
select etat,AVG(placa_pod) AS ŚREDNIA,COUNT(*) AS LICZBA from pracownicy WHERE to_char(zatrudniony,'YYYY')<1990 GROUP BY etat;