gpt4 book ai didi

arrays - 使用 PostgreSQL xpath 函数并从数组中获取第一个返回值

转载 作者:行者123 更新时间:2023-12-03 09:07:48 24 4
gpt4 key购买 nike

一般来说:如果 PostgreSQL 函数返回一个数组,我可以访问它的枚举值之一而无需进行子查询吗?

具体来说,这是我正在尝试做的事情的抽象示例:

SELECT
xpath('/a/text()', subquery.xmlvalue)
FROM (
SELECT '<a>theValue</a>'::xml xmlvalue
) subquery ;

...返回一个数组:

   xpath    
------------
{theValue}
(1 row)

...但我想要的是该数组中的第一个(也是唯一的)值:

   xpath    
------------
theValue
(1 row)

...所以,我的问题是,这是(下面的子查询)唯一的方法吗?还是有没有办法在没有 subquery2 的情况下做到这一点?

SELECT subquery2.xpatharray[1] FROM (
SELECT
xpath('/a/text()', subquery.xmlvalue) xpatharray
FROM (
SELECT '<a>theValue</a>'::xml xmlvalue
) subquery
) subquery2 ;

…因为这不起作用:

SELECT
xpath('/a/text()', subquery.xmlvalue)[1]
FROM (
SELECT '<a>theValue</a>'::xml xmlvalue
) subquery ;

...错误消息是:

ERROR:  syntax error at or near "["
LINE 2: xpath('/a/text()', subquery.xmlvalue)[1]
^

最佳答案

嗯,我觉得很傻……但是因为这个网站允许并鼓励回答自己的问题……

您所要做的就是将 xpath 函数放在另一组括号中:

SELECT
(xpath('/a/text()', subquery.xmlvalue))[1]
FROM (
SELECT '<a>theValue</a>'::xml xmlvalue
) subquery ;

关于arrays - 使用 PostgreSQL xpath 函数并从数组中获取第一个返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45665865/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com