Функция для выбора строк таблицы на основе определенных условий - PullRequest
0 голосов
/ 25 февраля 2020
create table my_table(x int, y int);

create function get_rows() 
    returns table (lie my_table) as $$
begin
    -- 1 First try
    --select * from my_table where x < 0;
    -- 2 If empty then try 
    --select * from my_table where y < 0;
end; $$
language plpgsql;

Как реализовать функцию, которая выбирает строки на основе условия 1, но если таких строк не существует, тогда выбирайте на основе условия 2. Если более подходящие условия могут быть выполнены, вернуть пустую таблицу.

1 Ответ

1 голос
/ 26 февраля 2020

Вы можете нас «ЕСЛИ СУЩЕСТВУЕТ» проверить первое условие. Затем, в зависимости от результата, используйте RETURN Query для соответствующего выбора;

create or replace function get_rows() 
    returns table (lie my_table) 
    language plpgsql
as $$
begin
    -- 1 First try
    if exists (select null from my_table where x < 0)
    then 
       return query 
          select * from my_table 
           where x < 0;
    -- 2 If empty then try            
    else 
       return query
          select * from my_table 
           where y < 0;
    end if;                  
end; $$;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...