2
大きな整数を扱うための関数はありますか?biginteger配列関数
モジュールintarrayが見つかりましたが、このモジュールの機能はinteger
で、bigint
では機能しません。
配列から項目を削除する関数がありません。言及したモジュールでの「マイナス」オペレータの実装ような何か:
int[] - int
(配列から右引数に一致するエントリを削除)
大きな整数を扱うための関数はありますか?biginteger配列関数
モジュールintarrayが見つかりましたが、このモジュールの機能はinteger
で、bigint
では機能しません。
配列から項目を削除する関数がありません。言及したモジュールでの「マイナス」オペレータの実装ような何か:
int[] - int
(配列から右引数に一致するエントリを削除)
改良版と2015を更新しました。
あなた自身の機能を代用することができます。この1は、適度に高速です:
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で不変である、あなたは要求された番号のないコピーを行う必要があります –