我有专栏[datatype:varchar(50)]
在数据库(SQL Server 2008)中具有如下所示的值:
1
2
1.1.11
4.1
5
2.1
1.1
4
1.2.1
4.2.2
4.3
4.2
4.3.1
4.2.1
11.2
1.2.4
4.4
这些是我记录的编号项目符号
我需要将它们按顺序对所有记录进行分组
1,1.1,1.1.1,2,3.1,4,10.1,11.1....
请在这方面帮助我。
最佳答案
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)
退货
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
那是你需要的吗?
关于sql-server - 对数据库中的项目符号进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12406985/