2009-04-17 10 views
5

Questa query ha esito negativo:È possibile selezionare PostgreSQL da una matrice restituita da una funzione?

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

ERROR: syntax error at or near "[" 

Ma questo funziona:

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

La mia espressione XPath restituisce sempre un solo valore, ma la funzione XPath Postgres restituisce un array. Voglio selezionare il primo valore nella matrice. Mentre la sottoselezione funziona, è piuttosto brutta.

Perché la prima query non funziona e c'è un modo più semplice per farlo rispetto alla seconda query?

risposta

7

ne dite di questo:

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

Quella era una soluzione estremamente semplice! Immagino che, nel dubbio, usi più parentesi. – DNS

Problemi correlati