2011-12-20 28 views
2

是否有任何可用于大整数工作的函数?biginteger数组函数

我找到了一个模块intarray,但是该模块的功能仅适用于integer,而不是bigint

我想念一个从数组中删除项目的函数。就像一个“减”运算符提到模块中实现:

int[] - int(删除匹配来自阵列右边的参数项)

+0

阵列是以pg不可改变的,你有没有申请数字做复制 –

回答

3

更新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} 

保持阵列的原始顺序。

相关: