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

Sortuj pociski w bazie danych

WITH T(YourColumn) AS
(
SELECT '1' UNION ALL
SELECT '2' UNION ALL
SELECT '1.1.11' UNION ALL
SELECT '4.1' UNION ALL
SELECT '5' UNION ALL
SELECT '2.1' UNION ALL
SELECT '1.1' UNION ALL
SELECT '4' UNION ALL
SELECT '1.2.1' UNION ALL
SELECT '4.2.2' UNION ALL
SELECT '4.3' UNION ALL
SELECT '4.2' UNION ALL
SELECT '4.3.1' UNION ALL
SELECT '4.2.1' UNION ALL
SELECT '11.2' UNION ALL
SELECT '1.2.4' UNION ALL
SELECT '4.4'
)
SELECT *
FROM T 
ORDER BY CAST('/' + YourColumn + '/' AS HIERARCHYID)

Zwroty

YourColumn
----------
1
1.1
1.1.11
1.2.1
1.2.4
2
2.1
4
4.1
4.2
4.2.1
4.2.2
4.3
4.3.1
4.4
5
11.2

Czy tego potrzebujesz?




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dlaczego zapytanie parametryczne generuje znacznie wolniejszy plan zapytań w porównaniu z zapytaniem niesparametryzowanym?

  2. Kopia zapasowa SQL Server 2017 -3

  3. Jak dodać właściwość tożsamości do istniejącej kolumny w SQL Server?

  4. Różnica dwóch dat w serwerze sql

  5. Nie można rozwiązać konfliktu sortowania między SQL_Latin1_General_CP1_CI_AS i Latin1_General_CI_AS w operacji równej