Gustav Brock
gustav at cactus.dk
Tue Jun 17 10:13:29 CDT 2003
Hi Børge I found something from an old similar conversion routine. It's a query which cannot be sorted, so feed the output to another query where you select the needed fields only and order by Fld1, Fld2, Fld3. <SQL> SELECT *, InStr(1,[StringID],".") AS Dot1, Val(IIf([Dot1]=0, [StringID], IIf([Dot1]=1, "", Left([StringID],[Dot1]-1)))) AS Fld1, IIf([Dot1]=0, "", Mid([StringID],1+[Dot1])) AS FldRest1, InStr(1,[FldRest1],".") AS Dot2, Val(IIf([Dot2]=0, "" & [FldRest1], Left([FldRest1],[Dot2]-1))) AS Fld2, IIf([Dot2]=0, "", Mid([FldRest1],1+[Dot2])) AS FldRest2, InStr(1,[FldRest2],".") AS Dot3, Val(IIf([Dot3]=0, "" & [FldRest2], Left([FldRest2],[Dot3]-1))) AS Fld3 FROM tblYourTable; </SQL> It will also handle entries like .8.70 and ..61 /gustav > We have a text field with data like this when sorted ascending: > 1 > 1.1 > 1.2 > 10 > 10.1 > 11 > 11.1 > 11.2 > 2 > 2.1 > 2.2 > 3 > 3.1. > 3.1.1 > 3.1.2 > 3.1.3 > 4 > etc etc. > Any one got ideas for how to sort the field like this: > 1 > 1.1 > 1.2 > 2 > 2.1 > 2.2 > 3 > 3.1. > 3.1.1 > 3.1.2 > 3.1.3 > 4 > .... > 10 > 10.1 > 11 > 11.1 > 11.2 > ????? > Regards > Borge Hansen