【发布时间】:2018-11-12 15:24:49
【问题描述】:
我正在尝试执行一些 SELECT 以在函数中使用,我的代码是这样的:
DECLARE
result_one record;
BEGIN
EXECUTE 'WITH Q1 AS
(
SELECT id
FROM table_two
INNER JOINs, WHERE, etc, ORDER BY... DESC
)
SELECT Q1.id
FROM Q1
WHERE, ORDER BY...DESC';
RETURN final_result;
END;
我知道如何在 MySQL 中做到这一点,但在 PostgreSQL 中我失败了。我应该改变什么或者我应该怎么做?
【问题讨论】:
-
您使用
EXECUTE的原因并不明显(至少对我而言),或者您期望从该查询中得到什么结果。上面的代码甚至没有理由出现在 plpgsql 中——你可以只使用 SQL 函数 -
我知道,选择是示例,我需要知道在这种情况下如何使用执行。那些select有动态参数,有些人会通过CLI编辑参数,长话短说。
-
那么如果你想让人们弄清楚你的问题是什么,你就需要给出一个更准确的例子。该代码只是没有返回任何结果,我不明白您为什么会期望它。您已经阅读了手册的相关部分 (postgresql.org/docs/11/…) 不是吗?
-
请注意,functions 与 procedures 不同,因此“存储过程”(SP) 在提及函数时是一个误导性术语。见:dba.stackexchange.com/a/194811/3684
标签: postgresql plpgsql common-table-expression dynamic-sql stored-functions