Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL Order Като не работи правилно

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

Така че правилният начин е да го съхраните като числова стойност. Това обаче изглежда невъзможно, тъй като използвате и стойности като 16.000 with 4.1/2"DP . След това бих добавил друга колона, едната за числовата стойност, по която искате да подредите, а другата за текстовото представяне.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изберете DATEADD минути със заявка SQL Server 2008

  2. Разлика между sys.columns, sys.system_columns и sys.all_columns в SQL Server

  3. Маса с много колони

  4. MMC не можа да създаде конзолната добавка. Грешка в мениджъра на конфигурацията на SQL Server

  5. Как да разделя низ в sql сървър 2008 с помощта на съхранена процедура и да вмъкна данните в таблицата