Jeśli znasz maksymalną liczbę miejsc po przecinku, możesz podzielić łańcuch na części i posortować je osobno. Na przykład, jeśli wiesz, że masz maksymalnie 4 miejsca po przecinku (oddzielając 5 różnych liczb), możesz utworzyć 5 formuł, z których każdy reprezentuje kawałek ciągu.
//Formula {@Num1} to isolate most significant number
local stringvar array splitString := split({table.string},'.');
if isnumeric(splitString[1]) then tonumber(splitString[1]) else 0
//...and the formula {@Num2} for second most significant number
local stringvar array splitString := split({table.string},'.');
if ubound(splitString)>1 and isnumeric(splitString[2])
then tonumber(splitString[2]) else 0
Teraz sortować raport najpierw {@Num1}
a następnie przez {@Num2}
itp
Spróbuj wprowadzić skalarną funkcję CLR ... Możesz znaleźć jedną możliwą implementację ** [tutaj] (http://stackoverflow.com/questions/34509/natural-human-alpha-numeric-sort-in- microsoft-sql-2005) **. –