--1 задача 1 вариант
select * from (
select job_id, department_id from employees where department_id = 10
union
select job_id, department_id from employees where department_id = 20
union
select job_id, department_id from employees where department_id = 50 )
t order by case department_id when 10 then 1 when 50 then 2 when 20 then 3 end;
--1 задача 2 вариант
select * from (
select job_id, department_id from employees where department_id is not null
minus
select job_id, department_id from employees where department_id not in (10,20,50)
)t order by case department_id when 10 then 1 when 50 then 2 when 20 then 3 end;
--1 задача 3 вариант
select * from (
select job_id, department_id from employees
intersect
select job_id, department_id from employees where department_id in (10,20,50)
)t order by case department_id when 10 then 1 when 50 then 2 when 20 then 3 end;
--2 задача
select EMPLOYEE_ID, LAST_NAME from (
select
EMPLOYEE_ID,
LAST_NAME,
max(instr(LAST_NAME, 'u')) over(partition by DEPARTMENT_ID) flag
from employees
)t
where flag > 0
order by 1;