Just refactor DO block to function that returns row set and put SELECT inside. > 29 дек. 2018 г., в 18:40, Glenn Schultz <glenn@xxxxxxxxxx> написал(а): > > All, > > I need to initialize a variable and then use it in query. Ultimately this will part of a recursive CTE but for now I just need to work this out. I followed the docs and thought I needed something like this. But does not work-maybe I have misunderstood. Is this possible? > > SET max_parallel_workers_per_gather = 8; > SET random_page_cost = 1; > SET enable_partitionwise_aggregate = on; > > Do $$ > Declare startdate date; > BEGIN > startdate := (select max(fctrdt) from fnmloan); > END $$; > > select > fnmloan.loanseqnum > ,fnmloan.currrpb > from > fnmloan > > join > fnmloan_data > on > fnmloan_data.loanseqnum = fnmloan.loanseqnum > > where > fnmloan.fctrdt = (select * from startdate) > > limit 10