2009-04-17 60 views
5

查詢失敗:PostgreSQL可以從函數返回的數組中選擇嗎?

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

ERROR: syntax error at or near "[" 

但是這一個工程:

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

我的XPath表達式總是隻返回一個值,但Postgres的XPath函數返回一個數組。我想選擇數組中的第一個值。雖然子選擇工作,但它很醜陋。

爲什麼第一個查詢不起作用,並且是否有比第二個查詢更乾淨的方法?

回答

7

如何:

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

這是一個非常簡單的解決方案!我猜如果有疑問,請使用更多的括號。 – DNS 2009-04-17 19:04:50