作为一个最近从SQL Server转换过来的人,我对Postgresql有了一点了解。
我真的讨厌不得不用SQL编写嵌套的selevt语句,因为我发现这样做会影响代码的可读性和可维护性。
通常,我会在SQL Server中创建一个存储过程,在该存储过程中,我会将某些内容选择到临时表中,然后可以在另一个select语句中使用它。
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语句中使用该表
发布于 2020-04-19 22:50:48
创建一个集合返回函数,根本不需要临时表。
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;但是对于这样一个简单的语句,我宁愿创建一个视图。
https://stackoverflow.com/questions/61305649
复制相似问题