从 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 manual,cardinality()
...
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
我在 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 manual,cardinality()
...
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