Dan*_*lla 0 sql t-sql sql-server
任何人都知道如何根据索引号(wbscode)对记录进行排序
如果我在 1.1.9 之后使用 ORDER BY 它不会继续 1.1.10 更改为 1.2 我找不到正确的方法来执行连续的顺序。
有人知道正确的方法,即
1
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.1.10
1.1.11
1.2
1.2.1
2
.. ...
从房屋中选择 wbs ORBER BY wbs :(

您可以使用数据类型 hierarchyid
例子
Declare @YourTable Table ([WBSCode] varchar(50))
Insert Into @YourTable Values
('1')
,('1.1.1')
,('1.1.2')
,('1.1.3')
,('1.1.4')
,('1.1.5')
,('1.1.6')
,('1.1.7')
,('1.1.8')
,('1.1.9')
,('1.1.10')
,('1.1.11')
,('1.2')
,('1.2.1')
,('2')
Select *
from @YourTable
order by convert(hierarchyID,'/'+replace(WBSCode,'.','/')+'/')
Run Code Online (Sandbox Code Playgroud)
结果
WBSCode
1
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.7
1.1.8
1.1.9
1.1.10
1.1.11
1.2
1.2.1
2
Run Code Online (Sandbox Code Playgroud)