数组反转
来自 PostgreSQL 维基
跳转到导航跳转到搜索PostgreSQL 没有提供内置的 array_reverse() 函数,所以这里提供一个供您使用。 它速度不快,但可以完成工作。
CREATE OR REPLACE FUNCTION array_reverse(anyarray) RETURNS anyarray AS $$
SELECT ARRAY(
SELECT $1[i]
FROM generate_series(
array_lower($1,1),
array_upper($1,1)
) AS s(i)
ORDER BY i DESC
);
$$ LANGUAGE 'sql' STRICT IMMUTABLE;
对于 8.4 或更高版本,以下更正确的代码有效,因为它考虑了下标中的任何跳过。
CREATE OR REPLACE FUNCTION array_reverse(anyarray) RETURNS anyarray AS $$
SELECT ARRAY(
SELECT $1[i]
FROM generate_subscripts($1,1) AS s(i)
ORDER BY i DESC
);
$$ LANGUAGE 'sql' STRICT IMMUTABLE;