如何获取bigint []形式的最后一个元素和长度,PostgreSQL

时间:2019-02-15 07:42:30

标签: sql postgresql

我在postgresql中有一个表,如:

Column |   Type   | Modifiers 
--------+----------+-----------
 id     | bigint   | not null
 nodes  | bigint[] | not null
 tags   | text[]   | 

以及一些示例数据:

    id    |   nodes    
----------+------------
 25373389 |  {1}
 25373582 |  {1,2,3,2,6}
 25373585 |  {1,276,3,2}

我想获取nodes的最后一个元素和长度,所以我希望结果是:

    id    |   nodes    |   last     |   length    
----------+------------+------------+------------
 25373389 |  {1}       |     1      |     1
 25373582 | {1,2,3,2,6}|     6      |     5
 25373585 | {1,276,3,2}|     2      |     4

我使用跟随代码来获取第一个元素,但是不能使用nodes[-1]来获取最后一个元素。

select id,nodes[1] from table limit 3;

我如何得到它?预先感谢。

1 个答案:

答案 0 :(得分:2)

使用array_length

select nodes[array_length(nodes,1)] as last, array_length(nodes,1) as length from t;

Demo