你如何在postgres中弹出数组?

时间:2013-07-30 09:04:25

标签: postgresql plpgsql

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

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

1 个答案:

答案 0 :(得分: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)