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

La funzione XPath sum o fn:sum è implementata in PostgreSQL XPath?

Mi sono imbattuto nello stesso problema e sono lieto di aggiungere un'altra risposta alla domanda:

Con PostgreSQL 9.2 la documentazione ha improvvisamente un'altra frase che copre la funzione xpath:

Proprio quello che mi serve! Quindi in relazione alla domanda un'altra risposta valida è:Upgrade a PostgreSQL 9.2. Nel momento in cui scrivo, la versione 9.2 è solo una beta, ma posso confermare che funziona:

Dettagli della versione

postgres=# select version();
                                                     version                                                      
------------------------------------------------------------------------------------------------------------------
 PostgreSQL 9.2beta1 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-52), 64-bit
(1 row)

Dimostrazione della soluzione

(Questa dimostrazione è stata fatta con Postgre 9.5, perché originariamente ho incollato il codice sbagliato)

postgres=# SELECT xpath('sum(/my:a/value[.>15])', '<my:a xmlns:my="http://example.com">
postgres'# <value>20</value>
postgres'# <value>10</value>
postgres'# <value>30</value>
postgres'# </my:a>',
postgres(# ARRAY[ARRAY['my', 'http://example.com']]);
 xpath 
-------
 {50}
(1 row)