Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Ordine SQL Non funzionando correttamente

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.