我在Postgresql表中有一个列是唯一的和字符变化(10)类型 . 该表包含我需要保留的旧字母数字值 . 每次从这一点开始创建一个新行时,我希望它只是数字 . 我想从此表中获取此列的max numeric-only值,然后创建一个新行,其最大值增加1 .
有没有办法只在此列中查询此表的最大数值?
例如,如果此列当前具有以下值:
1111
A1111A
1234
1234A
3331
B3332
C-3333
33-D33
3**333*
是否有一个返回3333的查询,AKA从值中删除所有非数字字符,然后对它们执行MAX()?
2 回答
不完全是你提出的要求,但我认为对你有用的东西 .
要遍历所有列,将每个列转换为数字,然后将其转换为整数并返回最大值:
这会让你获得最大 Value ...比如说2999 .
现在,继续,考虑将列的默认值设置为类似序列的值,并将其转换为文本...这样就可以设置“MAX”一次,然后让postgres为未来的值完成所有工作 .
因为您只是设置默认值,所以不会更改当前的字母数字值 .
我想到了 . 以下查询有效 .
结果: