我有一个 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
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用查询创建表时,它给了我这个错误
ERROR: column "species" has pseudo-type record[]
********** Error **********
ERROR: column "species" has pseudo-type record[]
SQL state: 42P16
Run Code Online (Sandbox Code Playgroud)
有人可以给我一个很好的解释为什么我不能创建这个表以及如何解决这个问题
ps* 我用create table species2 as作为我的创建表语句
小智 5
对于一直在寻找同一错误答案的其他人,正如 @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;
Run Code Online (Sandbox Code Playgroud)
这将在一列中提供 (bar, bar1, bar2) 的输出。
| 归档时间: |
|
| 查看次数: |
4733 次 |
| 最近记录: |