【发布时间】:2015-01-30 14:34:57
【问题描述】:
我必须编写一个有两个输入的 PL/pgSQL 存储过程。
第一个输入应该进入一个返回一组时间戳的选择。
使用这些返回的时间戳,我打算循环第二个选择,它接受函数的第二个输入并返回我必须在循环的迭代中收集的单行。然后我组装第二个选择的输出并将其作为结果集返回。
FUNCTION (Input A B)
SELECT FROM T1 WHERE X = A INTO RS1.
LOOP VAL OVER RS1
Select FROM T2 WHERE Y = B AND Z = VAL INTO RS2
END LOOP
RETURN ASSEMBLED RS2
有人能指点我一个可以工作的骨架吗,顺便说一句。我需要文档中的哪些相关部分?我想我需要:
RETURNS TABLE () AS声明结果集CURSOR使用第一个查询的结果循环第二个查询
【问题讨论】:
-
当您可以使用
join的简单查询轻松完成时,为什么还要在函数中执行此操作? -
好吧,问题是一个选择在 when 子句中使用了
-
JOIN与IN没有真正的关系——你可以阅读更多about the concept here
标签: sql postgresql stored-procedures plpgsql