Postgresql
按字母排序,然後按數字排序
我有類似的記錄
A5 A4 Z1 B2 C7 C1A C11A B1 B4
我希望它們以這種方式排序
A4 A5 B1 B2 B4 C1 C11A C7 Z1
使用該
ORDER BY
子句。我希望它們按字母排序,然後按數值排序。
對於您的要求:
按字母排序,然後按數值排序
我假設(根據您的範例數據)您想要
ORDER BY
:
- 第一個字母,視為
text
.- 第一個數字(連續數字),視為
integer
.- 打破剩餘聯繫的整個字元串,視為
text
. 可能需要也可能不需要。SELECT * FROM tbl ORDER BY left(col, 1) -- 1st letter as text , substring(fest, '\d+')::int NULLS FIRST -- first number in string as int , col -- whole columns as cheap tiebreaker
更多細節: