PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да използвате postgresql any с jsonb данни

employees->'employment'->'benefits' е json масив, така че трябва да го разместите, за да използвате елементите му във any сравнение. Използвайте функцията jsonb_array_elements_text() в странично свързване :

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

Синтаксисът

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

е еквивалентен на

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

Думата lateral може да се пропусне. За документацията :

Вижте също:Каква е разликата между LATERAL и подзаявка в PostgreSQL?

Синтаксис

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

е форма на псевдоним според документацията



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да защитите вашите PostgreSQL бази данни от кибератаки с SQL защитна стена

  2. Как да внедрите Select For Update в EF Core

  3. Как да сравним две схеми в PostgreSQL

  4. Автоматизиране на одитите на сигурността за PostgreSQL

  5. Как да намеря всички дефинирани от потребителя (не свързани с разширение) функции?