我正在尝试创建一个SQL查询,它将按版本号(例如1.1,4.5.10等)对结果进行排序
这是我试过的:
SELECT * FROM Requirements
WHERE Requirements.Release NOT LIKE '%Obsolete%'
ORDER BY Requirements.ReqNum
Run Code Online (Sandbox Code Playgroud)
现在,ReqNum字段是一个字符串字段,不幸的是我无法将其更改为浮点数或类似的东西,因为我有需求数字162.1.11.
当我得到结果时,我会得到这样的订购:
1.1
1.10
1.11
1.3
Run Code Online (Sandbox Code Playgroud)
如何编写将按字典顺序排序的查询?
... 要么,
如何正确排序数据?
感谢提前输入!
我有一个存储自定义项目编号的SQL表.这些中的每一个都可以让一个孩子与它分开..每个人都可以生一个孩子.
它可能是一个例子(再次,动态,不知道它将是什么):
Item Number
1
1.1
1.1.1
1.1.1.1
1.1.1.1.a
1.1.1.1.b
10
11
2.1
2.10
2.2
2.20
20
3
30
Run Code Online (Sandbox Code Playgroud)
使这种情况变得艰难的是这些数字是在飞行中创建的,而不一定是有序的.您可以创建5个数字(1,2,3,4,5),然后创建一个1的子项,以便它不会按顺序存储在数据库中.
如何按表格顺序选择并按顺序Item Number显示,如上所述,当数据未按该顺序存储时?
我试过的大多数解决方案都给了我1, 2, 3, 4, 5...1.1, 1.2 OR 1, 1.1, 1.1.1, 10, 11...2, 2.1, 20....3, 30, etc.
我有一个包含varchar数据类型列的表.它中的数据类似于8.1,8.2,8.3,8.1.1,8.3.1,8.10,8.12,8.1.2等.我想订购这些数据,如
8.1
8.1.1
8.1.2
8.2
8.3
8.3.1
8.10
8.12.
Run Code Online (Sandbox Code Playgroud)
我已经尝试过以下方法:
SELECT LEN(COL)AS SORT,COL FROM #TEMP ORDER BY LEN(COL),COL
Run Code Online (Sandbox Code Playgroud)
这给了我喜欢的外观
8.1
8.2
8.3
8.10
8.12
8.1.1
8.1.2
8.3.1
Run Code Online (Sandbox Code Playgroud)
非常感谢帮助!