SQL返回SQL作为结果如何运行返回的SQL?

问题描述

使用交叉表方法动态旋转建议here的hstore。有什么方法可以立即运行返回的sql,还是有一种方法可以调用原始交叉表,然后运行sql作为唯一结果而不是运行两个查询来返回数据透视表?

所以当我运行此查询

    SELECT format(
   $s$SELECT * FROM crosstab(
     $$SELECT h.id,kv.*
       FROM   hstore_test h,each(hstore_col) kv
       ORDER  BY 1,2$$,$$SELECT unnest(%L::text[])$$
   ) AS t(id int,%s text);
   $s$,array_agg(key)  -- escapes strings automatically,string_agg(quote_ident(key),' text,')  -- needs escaping!
   ) AS sql 
FROM  (
   SELECT DISTINCT key
   FROM   hstore_test,skeys(hstore_col) key
   ORDER  BY 1
   ) sub;

它返回如下结果:

SELECT * FROM crosstab(
     $$SELECT h.id,kv.*
       FROM   hstore_test h
       LEFT   JOIN LATERAL each(hstore_col) kv ON TRUE
       ORDER  BY 1,$$SELECT unnest('{key1,key2,key3}'::text[])$$
   ) AS t(id int,key1 text,key2 text,key3 text);

我想做的是使用函数或第一个查询周围的另一个查询。返回第二个查询的结果,并使用返回的数据构建实例化视图

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...