आप अपने स्वयं के फ़ंक्शन को स्थानापन्न कर सकते हैं। यह काफी तेज है:
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()
- मिलान वाले सरणी तत्वों को बाहर करें