sql >> Base de Datos >  >> RDS >> Sqlserver

Orden SQL Por no funcionar correctamente

Los está almacenando como texto (nvarchar ), por eso obtienes orden lexográfico . Eso significa que cada carácter se compara entre sí de izquierda a derecha. Por lo tanto 4000 es "mayor" que 30000 (el último cero no importa ya que el primer 4 ya es más alto que el 3).

Entonces, la forma correcta es almacenarlo como un valor numérico. Sin embargo, eso parece imposible ya que también usa valores como 16.000 with 4.1/2"DP . Luego agregaría otra columna, una para el valor numérico por el que desea ordenar y la otra para la representación textual.