Postgres cho phép bạn sắp xếp theo mảng - về cơ bản là số phiên bản đại diện. Do đó, bạn có thể sử dụng cú pháp này:
order by string_to_array(version, '.')::int[] desc
Đây là một ví dụ đầy đủ:
select *
from (values ('1'), ('2.1'), ('1.2.3'), ('1.10.6'), ('1.9.4')) v(version)
order by string_to_array(version, '.')::int[] desc;
Và thậm chí là một trình diễn .