Frage Was ist der Unterschied zwischen `- >>` und `->` in Postgres SQL?


Was ist der Unterschied zwischen ->> und -> in SQL?

In diesem Thread (Überprüfen Sie, ob das Feld in der JSON-Typspalte postgresql existiert), empfiehlt der Beantworter grundsätzlich,

json->'attribute' is not null

Anstatt von,

json->>'attribute' is not null

Warum einen einzelnen Pfeil anstelle eines Doppelpfeils verwenden? In meiner begrenzten Erfahrung machen beide dasselbe.


18
2017-08-04 21:16


Ursprung


Antworten:


-> kehrt zurück json(b) und ->> kehrt zurück 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

11
2017-08-04 21:39



PostgreSQL bietet zwei native Operatoren -> und ->> um Ihnen bei der Abfrage von JSON-Daten zu helfen.

Der Betreiber -> gibt das JSON-Objektfeld als JSON zurück. Der Betreiber ->> Gibt das JSON-Objektfeld als Text zurück.

Die folgende Abfrage verwendet den Operator -> um alle Kunden in Form von JSON zu erhalten:

enter image description here

Und die folgende Abfrage verwendet Operator ->> um alle Kunden in Form von Text zu erhalten:

enter image description here

Sie können mehr Details in dem folgenden Link sehen http://www.postgresqltutorial.com/postgresql-json/


8
2017-11-13 17:49