Zadanie 16.

Korzystając z tabeli Employees w schemacie HR:

a) wyświetl listę numerów departamentów w taki sposób, by wszystkie były trzycyfrowe (uzupełnij je zerami z lewej) oraz nie powtarzały się.

b) wyświetl id pracownika oraz jego datę urodzenia i pensję wg określonego formatu:

p16

 

 

 

 

c) wygeneruj każdemu pracownikowi nowy adres mailowy składający się z nazwiska, kropki, pierwszej litery imienia, numeru departamentu, z domeną @abc.com (przykład: kowalska.a90@abc.com):

p16c

 

 

 

 

Schemat: HR, Tabela: Employees, Kolumny: department_id, employee_id, first_name, last_name, hire_date, salary, Wynik: a) 12 rows, b) oraz c) 107 rows

Rozwiązanie

a) SELECT DISTINCT LPAD(department_id, 3, '0') as Department
FROM employees
ORDER BY Department;

b) SELECT employee_id, to_char(salary, '$99G999D99') as Salary, to_char(hire_date, 'DD MON YYYY') as "Hire Date"
FROM employees
ORDER BY employee_id;

c) SELECT employee_id, lower(last_name ||'.'||SUBSTR(first_name, 1, 1)||department_id||'@abc.com') as "New Email"
FROM employees
ORDER BY employee_id;

[collapse]