有没有可用的函数来处理大整数?
我发现了一个模块intarray,但是这个模块中的函数只适用于integer,而不适用于bigint
我错过了从数组中移除项的函数。类似于在上述模块中实现“减号”运算符:
int[] - int(从数组中删除与右参数匹配的项)

最佳答案

用更好的版本更新了2015。
你可以代替你自己的功能。这个相当快:

CREATE OR REPLACE FUNCTION arr_subtract(int8[], int8[])
  RETURNS int8[] AS
$func$
SELECT ARRAY(
    SELECT a
    FROM   unnest($1) WITH ORDINALITY x(a, ord)
    WHERE  a <> ALL ($2)
    ORDER  BY ord
    );
$func$  LANGUAGE sql IMMUTABLE;

呼叫:
SELECT arr_subtract('{3,5,6,7,8,9}':: int8[], '{3,4,8}'::int8[]);

结果:
{5,6,7,9}

保持数组的原始顺序。
相关:
PostgreSQL unnest() with element number
Exclude matched array elements

08-19 00:52