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

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

Linda Hamilton
Linda Hamilton原創
2024-12-27 08:33:10340瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn