Heim >Datenbank >MySQL-Tutorial >Wie gebe ich eine virtuelle Tabelle von einer Postgres-Funktion zurück?
Virtuelle Tabelle von Funktion in Postgres zurückgeben
In Postgres erfordert das Erstellen einer benutzerdefinierten virtuellen Tabelle mit mehreren Zeilen und Spalten mithilfe einer Funktion eine bestimmte Syntax. In diesem Artikel wird gezeigt, wie Sie eine Funktion korrekt schreiben, die eine Reihe von Datensätzen zurückgibt, die einer virtuellen Tabelle ähneln.
Korrekte Syntax
Um eine Funktion zu definieren, die eine virtuelle Tabelle mit drei zurückgibt Ganzzahlspalten verwenden Sie das folgende PL/pgSQL Code:
CREATE OR REPLACE FUNCTION f_foo() RETURNS TABLE (a int, b int, c int) AS $func$ BEGIN RETURN QUERY VALUES (1,2,3) , (3,4,5) , (3,4,5) ; END $func$ LANGUAGE plpgsql IMMUTABLE ROWS 3;
Erklärung
Alternative Optionen
Einfaches SQL: Für einfache Szenarien kann eine einfache SQL-Anweisung ausreichen:
VALUES (1,2,3), (3,4,5), (3,4,5)
SQL-Funktion: Das können Sie Schließen Sie die obige Anweisung auch in eine SQL ein Funktion:
CREATE OR REPLACE FUNCTION f_foo() RETURNS TABLE (a int, b int, c int) AS $func$ VALUES (1, 2, 3) , (3, 4, 5) , (3, 4, 5); $func$ LANGUAGE sql IMMUTABLE ROWS 3;
Verwendung
Um die virtuelle Tabelle abzurufen:
SELECT * FROM f_foo();
Das obige ist der detaillierte Inhalt vonWie gebe ich eine virtuelle Tabelle von einer Postgres-Funktion zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!