我编写了一个SQL查询,它在结果集中返回一个库:
rate这里有float类型。
SELECT rate
FROM partner.exchange
WHERE id in (
(SELECT max(id)
FROM partner.exchange
WHERE currency_id = 1),
(SELECT max(id)
FROM partner.exchange
WHERE currency_id = 2),
(SELECT max(id)
FROM partner.exchange
WHERE currency_id = 3)
);我需要编写plpgsql函数,它将结果放入浮点数数组并返回一个。我怎么能这么做?
发布于 2014-09-19 10:12:38
由于查询的结果只有一个列,所以它的行可以放在一个数组中:
SELECT ARRAY(SELECT rate FROM ...[rest of subquery]);要从SQL中的这个数组中获取一个特定的元素,比如第三个元素,您可以编写:
SELECT s.x[3] FROM
(SELECT ARRAY(SELECT rate FROM ...[rest of subquery]) AS x)
AS s;在程序方面,这可以是:
DECLARE
x float[];
...
BEGIN
...
SELECT ARRAY(SELECT rate FROM ...[rest of subquery]) INTO x;
RETURN x[3];
ENDhttps://stackoverflow.com/questions/25929346
复制相似问题