我有一个这样的数据表:
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 :(得分:0)
instr
搜索第一期的位置; substr
提取所有字符串后跟;并且CAST
将其转换为数字,忽略第二期后的所有内容:
SELECT *
FROM ATableOfData
ORDER BY CAST(substr(Stage_Id, instr(Stage_Id, '.') + 1) AS INTEGER)