将列从varchar更改为整数并删除非数字字符

时间:2019-07-16 18:56:52

标签: sql postgresql

我需要将表中的版本列从VARCHAR更新为int。

版本列当前将版本保存为“ v”和数字(例如v1,v2,v3)的组合,我希望将其作为数字。

我尝试使用此sql查询来更新表列:

alter table vanities alter column version TYPE INTEGER USING(version::integer);

但是,出现以下错误:

[22P02] ERROR: invalid input syntax for integer: "v1"

我是否可以使用SQL查询删除所有v字符的列,然后将其转换为整数?

1 个答案:

答案 0 :(得分:3)

尝试摆脱第一个字符:

alter table vanities alter column version TYPE INTEGER USING (substr(version, 2)::integer);

Here是db <>小提琴。