powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Условие в функции
3 сообщений из 3, страница 1 из 1
Условие в функции
    #39969938
extra_dj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую!
Посоветуйте решение - необходимо выйти из функции при определенных условиях и отдать результат. При проверке условия таким способом
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
CREATE OR REPLACE function test_func(id int)
 RETURNS TABLE(results_q int4,flag character varying)
 LANGUAGE plpgsql
AS $function$
declare
    act_res int:= null;

begin
 with tab as (
     select 4/id  as res 
     where id = 2
    )

    select res into act_res from tab;

    if (act_res is not null)
    then
    return query 
    select res,
    case when res = 2 then 'Y'::varchar  end as flag
    from tab
    ;
    else 
  return query  with tab2 as (
     select 4+id  as res 
     )  
     select res,
     'N'::varchar as flag
    from tab2;

end if;
end;
$function$
;
select * from test_func(2)
;
;



получаю ошибку "relation "tab" does not exist", что и логично. посоветуйте, как возможно сделать проверку таким образом, не создавая временных таблиц?
...
Рейтинг: 0 / 0
Условие в функции
    #39969947
Swa111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
return query
with tab as (
  select 4/id  as res 
  where id = 2
 ),
 res1 as (
  select 
    res,
    case when res = 2 then 'Y'::varchar  end as flag
  from tab
 ),
 tab2 as (
  select 4+id  as res
  where not exists(select from res1 where res is not null) 
 )
select res, flag from res1 
union all
select res,'N'::varchar as flag from tab2
...
Рейтинг: 0 / 0
Условие в функции
    #39969968
extra_dj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Swa111,

спасибо, принцип понял
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Условие в функции
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]