Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql删除特定索引上的整数值_Postgresql_Postgresql 9.3 - Fatal编程技术网

Postgresql删除特定索引上的整数值

Postgresql删除特定索引上的整数值,postgresql,postgresql-9.3,Postgresql,Postgresql 9.3,我有整数数组{0,23,1,29,0,15,1}postgres(V9.3.6),我想用它的索引删除上面突出显示的特定元素,例如它是3,现在我使用函数idx CREATE OR REPLACE FUNCTION idx(anyarray, anyelement) RETURNS int AS $$ SELECT i FROM ( SELECT generate_series(array_lower($1,1),array_upper($1,1)) ) g(i) WHERE $1

我有整数数组{0,23,1,29,0,15,1}postgres(V9.3.6),我想用它的索引删除上面突出显示的特定元素,例如它是3,现在我使用函数idx

CREATE OR REPLACE FUNCTION idx(anyarray, anyelement)
    RETURNS int AS 
$$
SELECT i FROM (
    SELECT generate_series(array_lower($1,1),array_upper($1,1))
) g(i)
WHERE $1[i] = $2
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}