postgresql - 在 postgresql 的子查询中使用执行

标签 postgresql dynamicquery

我正在我的函数中创建一个动态查询,我需要从中提取数据。 现在我想执行那个查询。

像这样:

declare
df_id varchar;
BEGIN
/*creating dynamic query in run time and saving it in df_id in string format
say df_id='select col from schema.table_name**'*/
CREATE TEMP TABLE temp_table ON COMMIT DROP AS
    execute df_id;

我该怎么做? 另外,有没有其他方法可以在字符串变量中执行查询并将其存储到临时表?

最佳答案

您需要在动态 SQL 中包含 CREATE TABLE

假设变量df_id已经包含了SELECT语句,你可以这样做:

df_id := 'CREATE TEMP TABLE temp_table ON COMMIT DROP AS '||df_id;
execute df_id;

关于postgresql - 在 postgresql 的子查询中使用执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50173206/

相关文章:

sql - 如何在 PostgreSQL 中获取周开始和结束日期字符串?

sql - 多个相似表的规范化

c# - 如何将已弃用的 IMongoQuery 转换为 FilterDefinitionBuilder

java - 使用 JDBC Statement 或PreparedStatement 执行一组查询

mysql - 非常高级的 sql 查询的问题

postgresql - 如何在 PostgreSQL 中进行大型非阻塞更新?

sql-server - 如何将数据从本地 SQL Server 推送到 AWS 上的 Tableau Server

PostgreSQL docker : "could not bind IPv6 socket: Cannot assign requested address"

c# - 如何将 Linq 动态查询结果转换为自定义类?

java - 将动态 SQL 查询转换为 Java 中的准备语句