首页 >数据库 >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;

钥匙Points

  • RETURNS TABLE:指定虚拟表的数据类型。在本例中,它是一个包含三个整数列的表,分别名为 a、b 和 c。
  • INSERT:使用 INSERT 语句用数据填充虚拟表。
  • RETURN TABLE:使用 RETURN TABLE 从函数。

调用函数

您现在可以调用函数来获取虚拟表:

SELECT * FROM "public"."storeopeninghours_tostring"(<open_id>);

替代语法

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

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;

简单 SQL 解决方案

对于像这样的简单情况,您也可以使用简单的 SQL 语句:

VALUES (1, 2, 3), (3, 4, 5), (3, 4, 5)

以上是如何从 PostgreSQL 函数创建并返回虚拟表?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn