Remove array values in pgSQL

后端 未结 10 2370
不知归路
不知归路 2021-02-06 22:10

Is there a way to remove a value from an array in pgSQL? Or to be more precise, to pop the last value? Judging by this list the answer seems to be no. I can get the result I wan

10条回答
  •  萌比男神i
    2021-02-06 22:47

    I'm not sure about your context, but this should give you something to work with:

    CREATE TABLE test (x INT[]);
    INSERT INTO test VALUES ('{1,2,3,4,5}');
    
    SELECT x AS array_pre_pop,
           x[array_lower(x,1) : array_upper(x,1)-1] AS array_post_pop, 
           x[array_upper(x,1)] AS popped_value 
    FROM test;
    
    
     array_pre_pop | array_post_pop | popped_value 
    ---------------+----------------+--------------
     {1,2,3,4,5}   | {1,2,3,4}      |            5
    

提交回复
热议问题