一尘不染

Postgres SQL中的`->>`和`->`有什么区别?

sql

->>->SQL和有什么不一样?

在此线程中(检查json类型列postgresql中的字段是否存在),回答者基本上建议使用,

json->'attribute' is not null

代替,

json->>'attribute' is not null

为什么使用单箭头而不是双箭头?以我有限的经验,两者都做同样的事情。


阅读 217

收藏
2021-03-17

共1个答案

一尘不染

->返回json(b)并->>返回text

with t (jo, ja) as (values
    ('{"a":"b"}'::jsonb,('[1,2]')::jsonb)
)
select
    pg_typeof(jo -> 'a'), pg_typeof(jo ->> 'a'),
    pg_typeof(ja -> 1), pg_typeof(ja ->> 1)
from t
;
 pg_typeof | pg_typeof | pg_typeof | pg_typeof 
-----------+-----------+-----------+-----------
 jsonb     | text      | jsonb     | text
2021-03-17