我有一个表,其中列为主键,值为
G1,G2,G3,...Gn
我想订购数据,但问题是当我使用ORDER BY
子句时,它将数据显示为:
G1,G10,G11... G2,G20,G21, ... G3,G30,G31....
我使用的查询是:
select * from myTable order by id asc;
答案 0 :(得分:1)
您的id
列显然属于某种文本数据类型,因此排序按字母顺序排列,而不是按数字排序。为了让它发挥作用,剥去G' G'订购时从id
列开始:
SELECT * FROM mytable
ORDER BY right(id, -1)::integer;