0

感谢阅读!我正在使用 SQL 中的运算符从 Json 中提取数据,这是代码:

select lc.name as company,
       lr.name as retailer,
       ls.name as tienda,
       sm.created_on as date,
       sm.task_id as task_id,
       ss.submission_data::json-> '¿Qué ''bancos'' se encuentran cerca de la tienda? De ser necesario, pregunta al gerente de tienda' AS banco,
       ss.submission_data::json->> 'Indica la distancia aproximada entre la tienda y el ''banco'' más cercano' AS banco_distancia,
       ss.submission_data::json->> '¿En la zona hay disponibilidad de ''transporte público''? Indica los tipos de transporte' AS transporte,
       ss.submission_data::json->> 'Indica el precio estimado de un viaje en ''transporte público''' AS transporte_precio,
       ss.submission_data::json->> '¿En la zona hay servicio de ''aplicaciones de envíos''?' AS app_envio
from submission_submissionmetadata sm
  left join submission_submission ss on sm.submission_id = ss.id
  left join location_store ls on ls.id = sm.store_id
  left join location_retailer lr on lr.id = ls.retailer_id
  left join location_company lc on lc.id = lr.company_id
where sm.brand_id = 293 
order by date desc

在结果中,我得到了列 bank、transport 和 app_ship 以列表类型的形式出现,我尝试使用函数来展平它,但我没有成功。你知道我能做什么吗?

结果

4

1 回答 1

0

https://www.postgresql.org/docs/current/functions-json.html

等待您对上述评论的回复,但您可以在上述文档中看到提取 json 的所有方法。例如,如果你只想要 app_envio 数组的第一个元素,它会是:

ss.submission_data::json #>>  '{'¿En la zona hay servicio de ''aplicaciones de envíos''?',0}' AS app_envio
于 2021-04-19T02:19:19.550 回答