PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

dynamische Abfrage postgres

Es gibt das EXECUTE Anweisung von plpgsql , was das tun würde, was Sie versuchen - eine SQL-Abfragezeichenfolge auszuführen. Sie haben dynamisch getaggt, also ist dies möglicherweise das, wonach Sie suchen.

Funktioniert nur innerhalb von plpgsql-Funktionen oder DO Anweisungen (anonyme Codeblöcke). Die Unterscheidung zwischen EXECUTE und SQL-EXECUTE in der feinen Anleitung deutlich gemacht:

Hinweis: Die PL/pgSQL EXECUTE -Anweisung hat nichts mit EXECUTE zu tun Vom PostgreSQL-Server unterstützte SQL-Anweisung. Das EXECUTE des Servers -Anweisung kann nicht direkt in PL/pgSQL-Funktionen verwendet werden (und wird nicht benötigt).

Wenn Sie Werte aus einem dynamischen SELECT zurückgeben möchten Abfrage wie Ihr Beispiel zeigt, müssen Sie eine Funktion erstellen. DO Anweisungen geben immer void zurück . Mehr über das Zurückgeben von Werten aus einer Funktion im sehr guten Handbuch.