我有一个交叉表函数,该函数过去已经成功使用过很多次,但是现在它会将所有数据转储到最后,而不是将其转入输出表中。似乎找不到Crosstab。我已经对其进行了以下研究;
以下是功能代码的一部分: 开始 str:='“”文本,'; -A1单元格中的空白
FOR REC IN SELECT DISTINCT col_name 来自an_in_tbl ORDER BY col_name 环 str:= str || '“'|| rec.col_name ||'”文字'||','; 结束循环;
str:= substring(str, 0, length(str));
EXECUTE 'CREATE EXTENSION IF NOT EXISTS tablefunc;
DROP TABLE IF EXISTS an_out_tbl;
CREATE TABLE an_out_tbl AS
SELECT *
FROM crosstab(''select row_name, col_name, row_value from an_in_tbl order by 1'',
''SELECT DISTINCT col_name FROM an_in_tbl ORDER BY 1'')
AS final_result ('|| str ||')';
选择animal_pivot_fn()
注意:扩展名“ tablefunc”已存在,正在跳过 注意:表“ an_out_tbl”不存在,正在跳过 错误:函数交叉表(未知,未知)不存在 第5行:FROM交叉表('从...选择行名称,列名称,行值... ^ 提示:没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。 查询:如果tablefunc不存在,则创建扩展; 如果存在则删除表an_out_tbl; 创建表an_out_tbl AS 选择 * FROM crosstab('按1的顺序从an_in_tbl中选择row_name,col_name,row_value',
'从an_in_tbl ORDER BY 1中选择DISTINCT col_name') AS final_result(“”文本,“ CAT”文本,“ DOG”文本,“ SNAKE”文本,“ HORSE”文本,“ ELEPHANT”文本,“ MOUSE”文本,“ MONKEY” ...等等...这里数据记录在哪里,没有复制的表表在哪里?