postgresql string_to_array - 获取最后一个元素和最后一个元素

时间:2014-05-11 19:41:26

标签: arrays postgresql

我有一个包含int,int,float,float * many的长字符串,我需要获取最后两个浮点数。

  

100,140,​​14.123,15.123,200,240,16.124,17.123

我使用string_to_array来获取元素3& 4(前两个浮点数)但我还需要一种方法来获得最后两个浮点数(本例中为7和8)。

1 个答案:

答案 0 :(得分:2)

CREATE OR REPLACE FUNCTION last_fields(anyarray, int)
RETURNS anyarray LANGUAGE sql AS $$
  SELECT ($1)[array_upper($1,1) - $2 + 1: array_upper($1,1)];
$$;

postgres=# select last_fields(ARRAY[1,2,3,4,5], 2);
 last_fields 
─────────────
 {4,5}
(1 row)