Postgresql 函数根据特定条件选择表行

Postgresql 函数根据特定条件选择表行,postgresql,Postgresql,如何实现基于条件1选择行的函数,但如果这些行不存在,则基于条件2选择。如果下面的条件可以满足,则返回一个空表。如果存在,您可以告诉我们测试第一个条件。然后根据结果使用返回查询进行适当的选择 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_ta

如何实现基于条件1选择行的函数,但如果这些行不存在,则基于条件2选择。如果下面的条件可以满足,则返回一个空表。

如果存在,您可以告诉我们测试第一个条件。然后根据结果使用返回查询进行适当的选择

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;
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; $$;