Postgresql存储过程select into temp table。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Postgresql存储过程select into temp table。相关的知识,希望对你有一定的参考价值。
作为一个最近从SQL Server转换过来的人,我正在一点点了解Postgresql。
我真的很讨厌在SQL中写嵌套的selevt语句,因为我发现当我这样做时,代码的可读性和可维护性都会受到影响。
通常我会在SQL Server中创建一个存储过程,在这个存储过程中,我会选择一些东西到一个临时表中,然后我可以在另一个选择语句中使用。
CREATE OR ALTER PROCEDURE Procname
AS
BEGIN
SELECT
Somewhere.Col_1,
Somewhere.Col_2
INTO
#Temptable
FROM
Somewhere Somewhere
SELECT
Temptable.Col_1,
Somewhere_Else.Col3
FROM
#Temptable Temptable
INNER JOIN
Somewhere_Else.Col_2 = Temptable.Col_2
END
当我执行这个存储过程时,我将得到最终的选择查询返回
我如何在Postgresql中复制这个过程?
我知道你可以选择到一个临时表,但我似乎不知道如何在同一个存储过程的下一个选择语句中使用这个表。
答案
创建一个集合返回函数,根本不需要临时表。
CREATE function Procname()
returns table(col_1 ???, col2 ???) --<< change data types here
AS
$$
SELECT
Temptable.Col_1,
Somewhere_Else.Col3
FROM Somewhere Temptable
INNER JOIN Somewhere_Else ON Somewhere_Else.Col_2 = Temptable.Col_2;
$$
language sql
stable;
但是对于这样一个简单的语句,我宁愿创建一个视图。
以上是关于Postgresql存储过程select into temp table。的主要内容,如果未能解决你的问题,请参考以下文章
关于oracle存储过程select into 未找到数据问题
关于oracle存储过程select into 未找到数据问题