如何将功能应用到Postgres的阵列列的每个元素?

编程入门 行业动态 更新时间:2024-10-25 12:16:29
本文介绍了如何将功能应用到Postgres的阵列列的每个元素?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

一个PG查询返回的数组。我想检索与格式化为3位小数每个元素。如何申请一个函数对数组中的每一个元素?类似下面的(错,显然) -

A Pg query returns an array. I would like to retrieve that with each element formatted to 3 decimal places. How can I apply a function to each element of an array? Something like the following (wrong, obviously) --

SELECT Round(ARRAY[1.53224,0.23411234], 2); {1.532, 0.234}

我想我寻找类似Perl的地图功能。

推荐答案

您可能需要创建一个存储功能。这里是做你所需要的一个:

You may need to create a stored function. Here is the one that does what you need:

CREATE OR REPLACE FUNCTION array_round(float[], int) RETURNS float[] AS $$ DECLARE arrFloats ALIAS FOR $1; roundParam ALIAS FOR $2; retVal float[]; BEGIN FOR I IN array_lower(arrFloats, 1)..array_upper(arrFloats, 1) LOOP retVal[I] := round(CAST(arrFloats[I] as numeric), roundParam); END LOOP; RETURN retVal; END; $$ LANGUAGE plpgsql STABLE RETURNS NULL ON NULL INPUT;

然后调用是这样的:

Then call something like this:

# SELECT array_round(ARRAY[1.53224,0.23411234], 2); array_round ------------- {1.53,0.23} (1 row)

更多推荐

如何将功能应用到Postgres的阵列列的每个元素?

本文发布于:2023-10-25 18:28:36,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1527742.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:阵列   如何将   元素   功能   Postgres

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!