sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Order Genom att inte fungera korrekt

Du lagrar dem som text(nvarchar ), det är därför du får lexografisk ordning . Det betyder att varje karaktär jämförs med varandra från vänster till höger. Därav 4000 är "högre" än 30000 (den sista nollan spelar ingen roll eftersom de fyra första redan är högre än de tre).

Så det korrekta sättet är att lagra det som ett numeriskt värde. Det verkar dock vara omöjligt eftersom du också använder värden som 16.000 with 4.1/2"DP . Sedan skulle jag lägga till ytterligare en kolumn, en för det numeriska värdet du vill sortera efter och den andra för textrepresentationen.



  1. PHP-array till postgres-array

  2. Hur skriver man kombinatorisk funktion i postgres?

  3. Tabellnamn eller kolumnnamnslängd påverkar prestanda?

  4. Problem med att försöka köra SSIS-paketet med Oracle Connection Attunity