Как вы попаете массив в Postgres?

Мне интересно, как получить значение из верхней части массива в postgresql с помощью plpgsql?

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

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)
Другие вопросы по тегам