--Создать функцию на PL/pgSQL, которая принимает на вход целое число и возвращает это число умноженное на 5.


drop function if exists mult_five;

create function mult_five(i integer) returns integer

as $$

begin

return i * 5;

end;

$$ language plpgsql;


select mult_five(2);


--Создать функцию, которая возвращает текст 'Вы проснулись до 5 утра', если в момент вызова функции еще нет 5 утра. И текст 'Вы проснулись после 5 утра', если уже 5 утра или позднее.


create function is_early_wake_up() returns varchar(50)

as $$

begin

return case 

when current_time > '05:00:00' then 'Вы проснулись после 5 утра'

else 'Вы проснулись до 5 утра'

end;

end;

$$ language plpgsql;


select is_early_wake_up();



select current_time > '05:00:00';

select to_char(now(), 'HH24') >= '05';


--Создать функцию, которая на вход принимает число и в консоль выводит названия всех фильмов, у которых rental_duration равен заданному числу. Функция возвращает 1.


create function find_film_by_rental_duration(rental_duration integer) returns integer

as $$

declare

i record;

begin

for i in

select

f.title 

from

film f

where 

f.rental_duration = find_film_by_rental_duration.rental_duration

loop

raise notice '%', i.title;

end loop;

return 1;

end;

$$ language plpgsql;


select find_film_by_rental_duration(4);


--Создать функцию, которая на вход принимает строку и в консоль выводит названия всех фильмов, у которых заданная строка является частью названия фильма. Функция возвращает 1.


create function find_film_by_name(n varchar) returns integer

as $$

declare 

i record;

begin

for i in 

select

f.title 

from

film f

where 

f.title like '%' || n || '%'

loop

raise notice '%', i.title;

end loop;

return 1;

end;

$$ language plpgsql;


select find_film_by_name('men');


Last modified: Sunday, 3 July 2022, 9:07 AM