Создание функции int PostgreSQL и возврат таблицы - PullRequest
0 голосов
/ 02 апреля 2020

Я новичок в SQL, и мне нужны некоторые советы / помощь в этом.

Прямо сейчас у меня есть логика c в postgres, чтобы получить таблицу в качестве результата, примерно так:

Create table A as (
   some logic                                                                    
)
.
.
.
Create table B as (
   .
   .
   . 
   where
         4/2/2020 some conditions
         2/15/2019 some conditions                                                              
)
select 
       *
from  
       A join B on <condition>
where 
       4/2/2020 some conditions
       2/15/2019 some conditions

Так что эти даты участвуют в коде несколько раз и я должен менять их каждый раз, когда запускаю код. Я знаю, что, если я вставлю запрос в функцию SQL, я смогу создать переменные и назначить значение один раз и просто использовать имя переменной, поэтому, когда мне нужно изменить даты, я просто в одном месте. Затем я просто выбираю имя функции и получаю ту же таблицу в качестве результата. Может кто-нибудь помочь мне понять, как вставить код в SQL функцию?

1 Ответ

0 голосов
/ 02 апреля 2020

Пожалуйста, просмотрите Как спросить . Следование этому шаблону значительно увеличивает ваши шансы получить удовлетворительный ответ. Тем не менее, структура, которую вы ищете, выглядит следующим образом:

create or replace function get_something( date1 date, date2 date)
returns table (<define return here>)
as $$
language sql 

  select 
         *
  from  
         A join B on <condition>
  where 
       date1 some conditions
       date2 some conditions ;
$$; 

Но, как указывает @wildplasser без фактических определений таблиц (DDL) и примера кода данных, мы не можем оказать большую помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...