首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Postgresql过程select into临时表

问Postgresql过程select into临时表
EN

Stack Overflow用户
提问于 2020-04-19 22:07:56
回答 1查看 70关注 0票数 0

作为一个最近从SQL Server转换过来的人,我对Postgresql有了一点了解。

我真的讨厌不得不用SQL编写嵌套的selevt语句,因为我发现这样做会影响代码的可读性和可维护性。

通常,我会在SQL Server中创建一个存储过程,在该存储过程中,我会将某些内容选择到临时表中,然后可以在另一个select语句中使用它。

代码语言:javascript
复制
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

当我执行此过程时,将返回最后的select查询

如何在Postgresql中复制此过程?

我知道可以使用select into临时表,但我似乎不知道如何在同一过程中的下一条select语句中使用该表

EN

回答 1

Stack Overflow用户

发布于 2020-04-19 22:50:48

创建一个集合返回函数,根本不需要临时表。

代码语言:javascript
复制
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;

但是对于这样一个简单的语句,我宁愿创建一个视图。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61305649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档