Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Kolejność SQL Nie działa poprawnie

Przechowujesz je jako tekst (nvarchar ), dlatego otrzymujesz porządek leksykalny . Oznacza to, że każda postać jest porównywana ze sobą od lewej do prawej. Stąd 4000 jest „wyższa” niż 30000 (ostatnie zero nie ma znaczenia, ponieważ pierwsze 4 jest już wyższe niż 3).

Więc prawidłowym sposobem jest zapisanie go jako wartości liczbowej. Jednak wydaje się to niemożliwe, ponieważ używasz również wartości takich jak 16.000 with 4.1/2"DP . Następnie dodałbym kolejną kolumnę, jedną dla wartości liczbowej, według której chcesz uporządkować, a drugą dla reprezentacji tekstowej.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mapy bitowe trybu wsadowego w SQL Server

  2. Jak programowo określić, które tabele SQL mają kolumnę tożsamości?

  3. SQL Server, znajdź dowolną sekwencję wartości

  4. Przestrzeń wykorzystywana przez wartości null w bazie danych

  5. Usuwanie klucza podstawowego (indeks klastrowy) w celu zwiększenia wydajności wstawiania