sql >> Database teknologi >  >> RDS >> PostgreSQL

Sådan bruger du postgresql med jsonb-data

employees->'employment'->'benefits' er et json-array, så du bør unnest det for at bruge dets elementer i any sammenligning.Brug funktionen jsonb_array_elements_text() i lateral joinforbindelse :

select *
from 
    employees, 
    jsonb_array_elements_text(employees->'employment'->'benefits') benefits(benefit)
where
    benefit = any('{Insurance A, Insurance B}'::text[]);

Syntaksen

from 
    employees, 
    jsonb_array_elements_text(employees->'employment'->'benefits')

svarer til

from 
    employees, 
    lateral jsonb_array_elements_text(employees->'employment'->'benefits')

Ordet lateral kan udelades. For dokumentationen :

Se også:Hvad er forskellen mellem LATERAL og en underforespørgsel i PostgreSQL?

Syntaksen

from jsonb_array_elements_text(employees->'employment'->'benefits') benefits(benefit)

er en form for aliasing ifølge dokumentationen



  1. MySQL 8.0.11 fejl tilslutning til caching_sha2_password det angivne modul kunne ikke findes

  2. Facebook user_id :big_int, int eller string?

  3. Kan ikke oprette testfil lavere test start server mysql

  4. Ikke i stand til at oprette forbindelse til databasen efter nogle tidspunkter med udrulning på serveren