如何正确排序索引(wbs)?

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 :(

在此处输入图片说明

Joh*_*tti 5

您可以使用数据类型 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)