我有一个列调用id:
4.1.2.10.0
4.1.2.3.0
4.1.2.4.0
6.1.20.0.0
6.1.3.0.0
...
etc...
我想要做的是包含一个分割的ORDER BY语句 字符串,变成这样:
4.1.2.3.0
4.1.2.4.0
4.1.2.10.0
6.1.3.0.0
6.1.20.0.0
...
etc....
我该怎么做?
答案 0 :(得分:3)
将field1
替换为实际字段名称:
select *
from tbl
order by CInt(mid(field1,1,instr(1,field1,'.')-1)),
CInt(mid(field1,instr(1,field1,'.')+1,instr(2,field1,'.')-1)),
CInt(mid(field1,instr(3,field1,'.')+1,instr(4,field1,'.')-1)),
CInt(mid(field1,instr(5,field1,'.')+1,instr(6,field1,'.')-1))
正如戈登在评论中指出的那样,这很容易出错。可能想等待更好的答案。
答案 1 :(得分:1)
标题暗示分裂:
Public Function SplitSort( _
ByVal Value As String, _
ByVal Element As Integer) _
As Integer
On Error Resume Next
SplitSort = Split(Value, ".")(Element - 1)
End Function
现在:
Order By
SplitSort([Fieldname], 1),
SplitSort([Fieldname], 2),
SplitSort([Fieldname], 3),
SplitSort([Fieldname], 4),
SplitSort([Fieldname], 5)