2009-04-17 6 views
5

Cette requête échoue:PostgreSQL peut-il sélectionner un tableau renvoyé par une fonction?

SELECT xpath('/my/xpath/expr', my_xml)[1] FROM my_table 

ERROR: syntax error at or near "[" 

Mais celui-ci fonctionne:

SELECT x[1] FROM 
    (SELECT xpath('/my/xpath/expr', my_xml) as x FROM my_table) as ss 

Mon expression XPath renvoie toujours une seule valeur, mais la fonction XPath Postgres retourne un tableau. Je veux sélectionner la première valeur dans le tableau. Alors que la sous-sélection fonctionne, c'est plutôt moche.

Pourquoi la première requête ne fonctionne-t-elle pas, et existe-t-il une façon plus simple de faire cela que la deuxième requête?

Répondre

7

Que diriez-vous ceci:

SELECT (xpath('/my/xpath/expr', my_xml))[1] FROM my_table; 
+1

C'était une solution remarquablement simple! Je suppose qu'en cas de doute, utilisez plus de parenthèses. – DNS

Questions connexes