Postgresql 删除特定索引上的整数值
Postgresql remove integer value on particular index
我有整数数组 {0,23,1,29,0,15,1} postgres(V 9.3.6) 我想删除突出显示的特定元素上面使用它的索引例如它是 3 现在我使用函数 idx
得到那些元素索引
CREATE OR REPLACE FUNCTION idx(anyarray, anyelement)
RETURNS int AS
$$
SELECT i FROM (
SELECT generate_series(array_lower(,1),array_upper(,1))
) g(i)
WHERE [i] =
LIMIT 1;
$$ LANGUAGE sql IMMUTABLE;
但我无法在 postgres 中找到任何允许使用索引删除的内置函数。
create or replace function idx(the_array anyarray, idx integer)
returns anyarray as $$
select array_agg(a order by i)
from (
select
generate_series(1, array_upper(the_array, 1)),
unnest(the_array)
) s(i, a)
where i != idx
; $$ language sql;
select idx(array[0,23,1,29,0,15,1], 3);
idx
------------------
{0,23,29,0,15,1}
我有整数数组 {0,23,1,29,0,15,1} postgres(V 9.3.6) 我想删除突出显示的特定元素上面使用它的索引例如它是 3 现在我使用函数 idx
得到那些元素索引CREATE OR REPLACE FUNCTION idx(anyarray, anyelement)
RETURNS int AS
$$
SELECT i FROM (
SELECT generate_series(array_lower(,1),array_upper(,1))
) g(i)
WHERE [i] =
LIMIT 1;
$$ LANGUAGE sql IMMUTABLE;
但我无法在 postgres 中找到任何允许使用索引删除的内置函数。
create or replace function idx(the_array anyarray, idx integer)
returns anyarray as $$
select array_agg(a order by i)
from (
select
generate_series(1, array_upper(the_array, 1)),
unnest(the_array)
) s(i, a)
where i != idx
; $$ language sql;
select idx(array[0,23,1,29,0,15,1], 3);
idx
------------------
{0,23,29,0,15,1}