PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Postgres JSONb vers XML avec tag_name et tag_value

En m'appuyant sur la solution de @Georges Martin, je n'utiliserais pas de jointure latérale ni de clause de regroupement, mais plutôt une sous-requête imbriquée :

SELECT XMLELEMENT(
  NAME "Company", 
  XMLATTRIBUTES(id AS id, field1 AS field), 
  (SELECT XMLAGG(
    XMLELEMENT(
      NAME "companyTag", 
      XMLATTRIBUTES(
        attr.key AS "tagName", 
        attr.value AS "tagValue"
      )
    )
  ) FROM JSONB_EACH_TEXT(attributes) AS attr)
) FROM comp_emp;