我在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;
但是它没有用。怎么做?
json[]
)中删除last元素,显然在plpgsql代码中:
_result_group := _result_group[1:cardinality(_result_group)-1];
假定一维数组的默认下标以1开头。
对于空数组输入,您将获得一个空数组,对于null则为null。
根据the manual,cardinality()
...返回数组中元素的总数,如果数组为空,则返回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