我有一个SQL语句,它可以100%正常运行并返回我需要的内容。
select t1.*,sg.shape from species_geom sg join
(select sg.linkid,array_agg((st.nj_status,st.fed_status)) species
from species_geom sg join species_table st
on sg.linkid = st.linkid
group by sg.linkid)t1
on sg.linkid=t1.linkid
但是,当我尝试使用查询创建一个表时,它会给我这个错误
ERROR: column "species" has pseudo-type record[]
********** Error **********
ERROR: column "species" has pseudo-type record[]
SQL state: 42P16
有人可以给我一个很好的解释,为什么我不能创建这个表以及如何解决这个问题
ps *我使用create table species2 as
作为我的创建表语句
答案 0 :(得分:2)
对于一直在寻找相同错误的答案的其他人,例如@ziggy提到将数组转换为文本的作品。
下面是遇到相同错误时我用来创建视图的代码段
select * ,
case when foo > 0
then (case when bar > 0 then 'bar'end,
case when bar1 > 0 then 'bar1'end,
case when bar2 > 0 then 'bar2' end)
else NULL end :: varchar as result,
from table1;
这将在一列中提供输出((bar,bar1,bar2)。