1. ホーム
  2. sql

[解決済み] Postgres SQLの `->>` と `->` の違いは何ですか?

2022-11-25 16:44:42

質問

とはどのような違いがあるのでしょうか? ->>-> をSQLで使うか?

このスレッドでは ( json型カラムのpostgresqlにフィールドが存在するか確認する。 ) では、回答者が基本的に使用を推奨しています。

json->'attribute' is not null

の代わりに

json->>'attribute' is not null

なぜ二重矢印ではなく一重矢印を使うのですか?私の限られた経験では、どちらも同じことをするのです。

どのように解決するのですか?

-> は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