PostgreSQL:使用相同的vaue更新列

时间:2015-07-28 09:08:17

标签: postgresql sql-update

以下是样本表和数据

create table chk_vals (vals text);

insert into chk_vals values ('1|2|4|3|9|8|34|35|38|1|37|1508|1534');

那么,如何通过在现有值的第4个位置附加整数来更新列vals ie。3 |用作分隔符)与符号|

一起进入最后一个位置

正如您可以看到存在的值1|2|4|3|9|8|34|35|38|1|37|1508|1534,输出应为1|2|4|3|9|8|34|35|38|1|37|1508|1534|3

1 个答案:

答案 0 :(得分:2)

使用PostgreSQL的split_part()分割字段并在4位置找到值

select split_part(vals,'|',4) val from chk_vals 

这将返回值3

 update chk_vals 
 set vals=vals||format('|%s',(select split_part(vals,'|',4) val from chk_vals))

Format()