加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

数组 – 如何在PostgreSQL中获取数组的最后一个元素?

发布时间:2020-12-13 16:19:56 所属栏目:百科 来源:网络整理
导读:PostgreSQL Documentation on arrays提供了一个使用[-1]来访问似乎是数组最后一个元素的示例;但是当SELECT arr [2:3];产生{5,9},arr [2:-1]得到{}. 如何在PostgreSQL中获取数组的最后一个元素? 编辑:Windows,PostgreSQL v9.2.1 我认为你误解了这个例子.
PostgreSQL Documentation on arrays提供了一个使用[-1]来访问似乎是数组最后一个元素的示例;但是当SELECT arr [2:3];产生{5,9},arr [2:-1]得到{}.

如何在PostgreSQL中获取数组的最后一个元素?

编辑:Windows,PostgreSQL v9.2.1

我认为你误解了这个例子. PostgreSQL数组不必从1到n,that’s just the default索引:

By default PostgreSQL uses a one-based numbering convention for arrays,that is,an array of n elements starts with array[1] and ends with array[n].

你正在看的例子是这样的:

SELECT f1[1][-2][3] AS e1,f1[1][-1][5] AS e2
 FROM (SELECT '[1:1][-2:-1][3:5]={{{1,2,3},{4,5,6}}}'::int[] AS f1) AS ss;

但是这些负数并没有像在Perl这样的语言中从数组的末尾开始索引.在FROM(SELECT …部分,它们指定了起始和结束索引,因此f1 [1] [ – 1] [5]中的-1只是一个普通的旧索引.考虑这个array_dims结果:

=> SELECT array_dims('[1:1][-2:-1][3:5]={{{1,6}}}'::int[]);
    array_dims     
-------------------
 [1:1][-2:-1][3:5]

如果您使用默认的基于1的数组,那么您可以使用简单的arr [array_length(arr,1)]获取最后一个元素.如果您没有使用默认的[1:n]数组,那么您将不得不使用array_lowerarray_upper来获取第一个和最后一个元素;或者,根据具体情况,您可以使用unnest解压缩数组,然后使用数组作为行集.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读