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

Правилно сортиране на числа с точки, съхранени като знак в SQL Server

Ако имате SQL 2008, можете да използвате новия тип данни hierarchyid:

WITH Items (ItemNumber) AS (
    SELECT '1' UNION ALL SELECT '1.1' UNION ALL SELECT '1.1.1'
    UNION ALL SELECT '10' UNION ALL SELECT '11' UNION ALL SELECT '2'
    UNION ALL SELECT '2.1' UNION ALL SELECT '20' UNION ALL SELECT '3'
    UNION ALL SELECT '30'
)
SELECT *
FROM Items 
ORDER BY Convert(hierarchyid, '/' + ItemNumber + '/');


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да замените NULL с празен низ в SQL?

  2. Изтриване на записи на SQL Server 2005 без регистриране

  3. Върнете редовете в точния ред, в който са били вмъкнати

  4. Не може да запише повече от 43679 знака в текстова колона с тип данни в SQL Server

  5. OPTION (RECOMPILE) е винаги по-бърз; Защо?