在 Postgres 中表示版本号

Represent versioned-number in Postgres

我的笔记本电脑上安装了 PostgreSQL 9.4,我的数据库包含一个版本号,格式如下:A.B.C.D(例如:1.2.13.6)。我如何将 MAX 聚合应用于文本列 "version"。非常感谢

如果数字总是数字,你可以这样做:

select max(string_to_array(version, '.')::int[])
from your_table;

通过将字符串转换为整数数组,比较将正确完成 [1,12,1] 大于 [1,1,1]

但是,如果您在该列中有 1.2.13.6a 这样的值,这将失败

SQLFiddle:http://sqlfiddle.com/#!15/d41d8/4608