Может ли PostgreSQL выбирать из массива, возвращаемого функцией? - PullRequest
5 голосов
/ 17 апреля 2009

Этот запрос не выполнен:

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 возвращает массив. Я хочу выбрать первое значение в массиве. В то время как подвыбор работает, он довольно уродлив.

Почему первый запрос не работает, и есть ли более чистый способ сделать это, чем второй запрос?

1 Ответ

7 голосов
/ 17 апреля 2009

Как насчет этого:

SELECT (xpath('/my/xpath/expr', my_xml))[1] FROM my_table;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...