sql >> Database >  >> RDS >> PostgreSQL

Hoe XML te parseren met optionele elementen

U moet eerst alle ns:Ntry-elementen extraheren en vervolgens het bedrag en de EndToEndId voor elk ervan krijgen:

SELECT 
    endaaa,
    (xpath('ns:Amt/text()', x,nsa))[1]::text::numeric AS tasusumma,
    (xpath('ns:NtryDtls/ns:TxDtls/ns:Refs/ns:EndToEndId/text()', x,nsa))[1] AS orderinr

FROM (
    SELECT (xpath('/ns:Document/ns:BkToCstmrStmt/ns:Stmt/ns:Acct/ns:Id/ns:IBAN/text()', x,nsa))[1] as endaaa,
    unnest(xpath('/ns:Document/ns:BkToCstmrStmt/ns:Stmt/ns:Ntry', x,nsa)) as x, nsa
    FROM t
) Ntry



  1. SQLAlchemy en Postgres UnicodeDecodeError

  2. MySQL meerdere joins naar dezelfde tabel

  3. Beste manier om JSON-gegevens in MYSQL in te voegen

  4. MySql selecteert dynamische rijwaarden als kolomnamen