我想用Sqlite對VarChar字段進行排序。用sqlite對數字(和數字+字母)排序
該字段可以包含數字或數字+字母,但我需要按數字順序進行排序,像這樣:
1 1a 1b 5 5x 5y 10 10d 10e 10g1 11 11a 11b 100c 100f
任何想法?我已經能夠做到這一點...它是靠近(但不完全)我需要什麼:
墊場與「00000」開始,然後排序一號五個字母
我想用Sqlite對VarChar字段進行排序。用sqlite對數字(和數字+字母)排序
該字段可以包含數字或數字+字母,但我需要按數字順序進行排序,像這樣:
1 1a 1b 5 5x 5y 10 10d 10e 10g1 11 11a 11b 100c 100f
任何想法?我已經能夠做到這一點...它是靠近(但不完全)我需要什麼:
墊場與「00000」開始,然後排序一號五個字母
使用內置函數沒有簡單的方法。使用sqlite3_create_collation
(或您喜歡的編程語言的等效包裝器)來定義實現natural sort的字符串比較函數。
易
select col from tbl order by col*1, col
不錯!但它只適用於開頭的數字:您仍然會按照錯誤的順序排列「10g9」和「10g10」。 – dan04 2011-03-04 04:54:59
@dan true,但它適用於上述所有數據,絕對適用於「數字+字母」格式(數字_then_字母) – RichardTheKiwi 2011-03-04 05:35:01
如果您有字母+數字,情況如何?例如A1,A2,A10等? – Michael 2016-10-03 01:40:31
-1不正確的答案 – RichardTheKiwi 2011-03-04 04:37:33