2
我有一個具有一列作爲主鍵的表,值是的PostgreSQL ORDER BY上文本列的數字部分子句
G1,G2,G3,...Gn
我希望訂購數據,但問題是當我使用ORDER BY
條款則顯示數據:
G1,G10,G11... G2,G20,G21, ... G3,G30,G31....
我使用的查詢是:
select * from myTable order by id asc;
我有一個具有一列作爲主鍵的表,值是的PostgreSQL ORDER BY上文本列的數字部分子句
G1,G2,G3,...Gn
我希望訂購數據,但問題是當我使用ORDER BY
條款則顯示數據:
G1,G10,G11... G2,G20,G21, ... G3,G30,G31....
我使用的查詢是:
select * from myTable order by id asc;
你id
列顯然是一些文本數據類型,所以排序是按字母順序排列的,而不是數字。爲了得到它的工作,從id
列剝離「G」訂貨時:
SELECT * FROM mytable
ORDER BY right(id, -1)::integer;
太棒了!謝謝!這工作 – Shoaib
@Glorfindel不是你提到的問題的重複,即使一個解決方案是存在的。這個問題是關於爲具有字母和數字字符的列創建新的PK。 – Patrick