2
是否有任何可用于大整数工作的函数?biginteger数组函数
我找到了一个模块intarray,但是该模块的功能仅适用于integer
,而不是bigint
。
我想念一个从数组中删除项目的函数。就像一个“减”运算符提到模块中实现:
int[] - int
(删除匹配来自阵列右边的参数项)
是否有任何可用于大整数工作的函数?biginteger数组函数
我找到了一个模块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}
保持阵列的原始顺序。
相关:
阵列是以pg不可改变的,你有没有申请数字做复制 –