Ordering digital dot patterns (such as version numbers)
2 answers
The listing cidr
will do the trick (if the numbers behave well)
DROP table meuk;
CREATE table meuk
( id SERIAL NOT NULL PRIMARY KEY
, version text
);
INSERT INTO meuk(version) VALUES
('1' )
, ('1.1' )
, ('1.1.1' )
, ('1.1.1.1' )
, ('1.1.2' )
, ('1.10' )
, ('1.11' )
, ('1.2' )
, ('1.9' )
;
SELECT * FROM meuk
ORDER BY version::cidr
;
Result:
INSERT 0 9
id | version
----+---------
1 | 1
2 | 1.1
3 | 1.1.1
4 | 1.1.1.1
5 | 1.1.2
8 | 1.2
9 | 1.9
6 | 1.10
7 | 1.11
(9 rows)
+1
source to share