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

Removed the last element from a json[]?

我在 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;

但是没有用。
如何做到这一点?

使用 Postgres 9.4 的方法从 any 数组(包括 json[])中删除 last 元素,显然在plpgsql代码:

_result_group := _result_group[1:cardinality(_result_group)-1];

假设一维数组的默认下标以 1.

开头

空数组输入为空数组,null 为 null。

根据the manualcardinality() ...

returns the total number of elements in the array, or 0 if the array is empty

然后把数组切片从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