[英]Postgresql Procedure select into temp table
作為最近從 SQL 服務器轉換過來的人,我對 Postgresql 有了一點了解。
我真的很討厭在 SQL 中編寫嵌套的 selevt 語句,因為我發現代碼的可讀性和可維護性會受到影響。
通常我會在 SQL 服務器中創建一個存儲過程,在那里我會將 select 一些東西放入一個臨時表中,然后我可以在另一個 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 放入一個臨時表中,但我似乎無法弄清楚如何在同一過程中的下一個 select 語句中使用該表
創建一個返回 function 的集合,根本不需要臨時表。
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;
但是對於這么簡單的陳述,我寧願創建一個視圖。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.