Postgres error: column does not exist when using json field

Postgres error: column does not exist when using json field

Postgres 版本 11.10

这是我使用 jsonb 字段的 postgres 模式

create table data(
    key       char(32), --md5 
    time      int  NOT NULL,
    output    jsonb NOT NULL,
    PRIMARY KEY (key,time)
) 

这里有两个查询效果很好

select distinct on(key) key   from data ORDER BY  key,time DESC
select distinct on(key) key,output   from data ORDER BY  key,time DESC

问题是这个查询

select distinct on(key) key,output-->details   from data ORDER BY  key,time DESC

我一直收到错误消息

column "key" does not exist

知道为什么吗?

-- 开始评论,一直持续到行尾(请参阅问题中突出显示的语法)。所以有效的查询是

select distinct on(key) key,output

由于没有 FROM 子句,列引用 key 导致错误。

您可能正在寻找 ->> 运算符:

select distinct on(key)
       key,
       output ->> 'details'
from data
ORDER BY  key,time DESC;