问题描述
我在表中有列 A,我想截断列 A 值中最后一位数字之后的所有字母并创建列 B。
Col A | Col B |
---|---|
A1234ABC | A1234 |
B1234AB | B1234 |
如何在 postgres 中将 col A 转换为 col B。(最后的字母长度不确定它可以是 3 还是 2。)
解决方法
您可以将 substring()
与正则表达式一起使用
select substring(col_a from '^.*[0-9]+')
from the_table
它提取从开始到至少一位或多位数字的所有内容。对于没有数字的输入值,它将“失败”。例如'ABCD'
作为输入将导致一个空字符串。