PostgreSQL可以从函数返回的数组中选择吗?

DNS*_*DNS 5 xml sql postgresql

此查询失败:

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

ERROR:  syntax error at or near "["
Run Code Online (Sandbox Code Playgroud)

但是这个有效:

SELECT x[1] FROM
    (SELECT xpath('/my/xpath/expr', my_xml) as x FROM my_table) as ss
Run Code Online (Sandbox Code Playgroud)

我的xpath表达式总是只返回一个值,但Postgres xpath函数返回一个数组.我想选择数组中的第一个值.虽然subselect有效,但它非常难看.

为什么第一个查询不起作用,并且有比第二个查询更简洁的方法吗?

Mil*_*dev 7

这个怎么样:

SELECT (xpath('/my/xpath/expr', my_xml))[1] FROM my_table;
Run Code Online (Sandbox Code Playgroud)