首頁 > 資料庫 > mysql教程 > 如何從 PostgreSQL 函數建立並傳回虛擬表?

如何從 PostgreSQL 函數建立並傳回虛擬表?

Linda Hamilton
發布: 2024-12-27 08:33:10
原創
338 人瀏覽過

How to Create and Return a Virtual Table from a PostgreSQL Function?

從Postgres 函數傳回虛擬表

在Postgres 中,建立虛擬表(類似Oracle 的虛擬表)可以透過以下方式實現一個函數。此函數可讓您傳回具有已定義結構和內容的自訂表格。

正確語法

以下是您提供的函數的正確語法:

CREATE OR REPLACE FUNCTION "public"."storeopeninghours_tostring" (open_id numeric)
  RETURNS TABLE (a int, b int, c int) AS
DECLARE
  returnrecords RECORD;
BEGIN
  INSERT INTO returnrecords(a, b, c) VALUES (1, 2, 3);
  INSERT INTO returnrecords(a, b, c) VALUES (3, 4, 5);
  INSERT INTO returnrecords(a, b, c) VALUES (3, 4, 5);
  RETURN TABLE returnrecords;
END;
登入後複製

鑰匙

    RETURNS TABLE
  • :指定虛擬表的資料類型。在本例中,它是一個包含三個整數列的表,分別名為 a、b 和 c。
  • INSERT
  • :使用 INSERT 陳述式以資料填入虛擬表。
  • RETURN TABLE
  • :使用 RETURN TABLE 從函數。
呼叫函數

現在可以呼叫函數來取得虛擬表:

SELECT * FROM "public"."storeopeninghours_tostring"(<open_id>);
登入後複製
替代語法

替代語法

CREATE OR REPLACE FUNCTION f_foo()
  RETURNS TABLE (a int, b int, c int) AS $$
BEGIN
  RETURN QUERY VALUES
    (1, 2, 3),
    (3, 4, 5),
    (3, 4, 5);
END;
$$ LANGUAGE plpgsql;
登入後複製

替代語法替代語法

在Postgres 8.4 或更高版本中,您也可以使用以下PL/pgSQL 語法:

VALUES (1, 2, 3), (3, 4, 5), (3, 4, 5)
登入後複製
簡單SQL 解決方案對於像這樣的簡單情況,您也可以使用簡單的SQL 語句:

以上是如何從 PostgreSQL 函數建立並傳回虛擬表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板