PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Ist die XPath-Summe- oder fn:sum-Funktion in PostgreSQL XPath implementiert?

Ich bin über dasselbe Problem gestolpert und freue mich, der Frage eine weitere Antwort hinzuzufügen:

Mit PostgreSQL 9.2 enthält die Dokumentation plötzlich einen weiteren Satz, der die xpath-Funktion abdeckt:

Nur was ich brauche! In Bezug auf die Frage lautet also eine andere gültige Antwort:Upgrade auf PostgreSQL 9.2. Während ich dies schreibe, ist Version 9.2 nur eine Beta-Version, aber ich kann bestätigen, dass sie funktioniert:

Versionsdetails

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)

Demonstration der Lösung

(Diese Demonstration wurde mit Postgre 9.5 gemacht, weil ich ursprünglich den falschen Code eingefügt habe)

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)