从json []中删除了最后一个元素?

问题描述 投票:0回答:1

我在PostgreSQL 9.4中有一个json[]数组(_result_group),我想删除其最后一个json元素(_current)。我准备了:

_result_group := (SELECT array_append(_result_group,_current));

并尝试通过以下方式删除:

SELECT _result_group[1:array_length(_result_group,1) -1] INTO _result_group;

但是它没有用。怎么做?

sql arrays postgresql postgresql-9.4
1个回答
0
投票
any数组(包括json[])中删除

last元素,显然在plpgsql代码中:

_result_group := _result_group[1:cardinality(_result_group)-1]; 假定一维数组的默认下标以
1
开头。

对于空数组输入,您将获得一个空数组,对于null则为null。

根据the manualcardinality() ...

返回数组中元素的总数,如果数组为空,则返回0

然后将数组切片从1取为基数-1。

然后再次,您的尝试也应该起作用:

SELECT _result_group[1:array_length(_result_group,1) -1] INTO _result_group;

有关非标准数组下标,请参阅:

Normalize array subscripts for 1-dimensional array so they start with 1

© www.soinside.com 2019 - 2024. All rights reserved.