Вие ги съхранявате като текст (nvarchar ), затова получавате лексографски ред
. Това означава, че всеки знак се сравнява един с друг отляво надясно. Следователно 4000 е "по-високо" от 30000 (последната нула няма значение, тъй като първите 4 вече са по-високи от 3).
Така че правилният начин е да го съхраните като числова стойност. Това обаче изглежда невъзможно, тъй като използвате и стойности като 16.000 with 4.1/2"DP . След това бих добавил друга колона, едната за числовата стойност, по която искате да подредите, а другата за текстовото представяне.