2014-03-25 46 views
-1

我有一個表的數據是這樣的:SQlite的排序自然

Index  Stage_Id  
1   V8R0.11.0  
2   V8R0.10.0  
3   V8R0.9.0   
4   V8R0.8.0   
5   V8R0.7.0   
6   V8R0.6.0   
7   V8R0.5.0   
8   V8R0.4.0   
9   V8R0.3.0   
10   V8R0.2.0  
11   V8R0.1.0   
12   V8R0.13.0  
12   V8R0.12.0   
12   V8R0.11.0   

我想自然排序,即最後三個記錄應V8R0.11.0面前。

回答

0

instr搜索第一期的位置; substr提取所有字符串followung;並且CAST將其轉換成數字,在第二個週期後忽略所有內容:

SELECT * 
FROM ATableOfData 
ORDER BY CAST(substr(Stage_Id, instr(Stage_Id, '.') + 1) AS INTEGER)