Li stai memorizzando come testo(nvarchar ), ecco perché ottieni ordine lessografico
. Ciò significa che ogni personaggio viene confrontato tra loro da sinistra a destra. Quindi 4000 è "superiore" a 30000 (l'ultimo zero non ha importanza poiché il primo 4 è già maggiore del 3).
Quindi il modo corretto è memorizzarlo come valore numerico. Tuttavia, sembra impossibile poiché utilizzi anche valori come 16.000 with 4.1/2"DP . Quindi aggiungerei un'altra colonna, una per il valore numerico in base al quale desideri ordinare e l'altra per la rappresentazione testuale.