将CTE传递给多个postgres函数

时间:2018-08-06 14:36:31

标签: postgresql plpgsql common-table-expression

在Postgres中,我想“存储”表的当前状态,并以该当前状态调用多个函数。这个想法是,如果在调用函数之间更改数据,则这些函数仍将全部使用相同的数据。

我得到的最接近的东西是

WITH current_table AS (SELECT * FROM table)
  result1 AS (SELECT function1(current_table)),
  result2 AS (SELECT function2(current_table)),
  SELECT function3(current_table)

该函数不返回任何内容,因此不使用result1和result2。据我所知,这当然行不通,因为无法将CTE传递给postgres中的函数。

我想实现的目标有替代方法吗?也调用嵌套在with语句中的函数是很丑陋的。有更好的方法吗?

我不想将整个表存储在临时表中。

我正在使用plpgsql。

0 个答案:

没有答案