是否有任何可用于处理大整数的函数?
我找到了一个模块intarray,但该模块中的函数仅适用于integer
,而不适用于bigint
。
我错过了从数组中删除项目的功能。类似于在提到的模块中实现“减号”运算符:
int[] - int
(从数组中删除匹配正确参数的条目)
是否有任何可用于处理大整数的函数?
我找到了一个模块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}
保持数组的原始顺序。
有关的: