2

我想知道如何使用 plpgsql 从 postgresql 中的数组顶部弹出一个值?

CREATE FUNCTION pop_off(arr ANYARRAY) RETURNING ANYARRAY AS $$
    BEGIN
        -- return array with first element removed
    END;
$$ LANGUAGE plpgsql;
4

1 回答 1

1

嗯,这并没有我想象的那么难。让我们利用 array_length 方法......

CREATE OR REPLACE FUNCTION pop_off(arr ANYARRAY) RETURNS ANYARRAY AS $$
    BEGIN
        RETURN (SELECT arr[2:array_length(arr,1)]);
    END;
$$ LANGUAGE plpgsql;

我们去吧!现在让我们测试一下...

LOG:  statement: CREATE OR REPLACE FUNCTION pop_off(arr ANYARRAY) RETURNS ANYARRAY AS $$
    BEGIN
        RETURN (SELECT arr[2:array_length(arr,1)]);
    END;
$$ LANGUAGE plpgsql;
CREATE FUNCTION
test_database=# SELECT pop_off('{1,2,3}'::int[]);
LOG:  statement: SELECT pop_off('{1,2,3}'::int[]);
 pop_off 
--------- 
{2,3}
(1 row)
于 2013-07-30T09:04:25.167 回答