sql - Vanilla Postgres,从准备好的语句中选择

标签 sql postgresql subquery prepared-statement

我想在子查询中使用准备好的语句。 简单示例:

PREPARE get_series(int) AS SELECT * FROM generate_series(1,$1);

SELECT * FROM EXECUTE get_series(13);

但是我遇到语法错误。

作为替代方案,我可以使用存储过程,但整个想法是将所有内容都保留在源代码中,准备好的语句允许调用参数化查询。有点像 UDP,但在源代码方面。

注意:我使用的是 Postgres 10.2

最佳答案

EXECUTE 是一个 SQL 语句,不是可以在 FROM 子句中使用的表达式。

试试这个:

EXECUTE get_series(13);

您不能在子查询中使用 EXECUTE — 那里只允许使用 SELECT

我会说你不应该为此使用准备好的语句;也许您真正需要的是集合返回函数。

关于sql - Vanilla Postgres,从准备好的语句中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49233766/

相关文章:

sql - 过滤掉子查询中返回的行

sql - 为什么在 Crystal 报表中使用beforereadingrecords/whilereadingrecords/whileprintingrecords?

sql - 我有每条记录的 StartDate 和 EndDate。在这两个字段中使用时,我应该赋予 NULL 特殊含义吗?

c# - Sql查询与Linq数据查询性能对比

sql - 使用 Union with Insert 添加一行

postgresql - Slony、pgAdmin 和集群复制的问题

sql - 在 PostgreSQL 8.4 版中将重叠日期间隔与多个分组相加的有效方法

sql - 错误 : operator does not exist with custom domain

MySQL:按连接表的最大日期排序

sql - 如果子查询导致SQLite情况