sql-server – 正确排序存储为SQL Server中的字符的虚线数字
发布时间:2020-12-12 16:26:45 所属栏目:MsSql教程 来源:网络整理
导读:我有一个存储自定义项目编号的SQL表.这些中的每一个都可以让一个孩子从中分离出一个分隔符……每个人都可以有一个孩子. 它可能是一个例子(再次,动态,不知道它将是什么): Item Number11.11.1.11.1.1.11.1.1.1.a1.1.1.1.b10112.12.102.22.2020330 使这一点变得
我有一个存储自定义项目编号的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 使这一点变得艰难的是这些数字是在飞行中创建的,而不一定是有序的.您可以创建5个数字(1,2,3,4,5),然后创建一个1的子项,以便它不会按顺序存储在数据库中. 如何从表格中选择并按项目编号进行排序,以便在数据未按该顺序存储时如上所示正确显示? 我试过的大多数解决方案都给了我1,5 …… 1.1,1.2或1,1.1,1.1.1,10,11 …… 2,20 …… 3,30等 解决方法如果您有SQL 2008,则可以使用新的hierarchyid数据类型:WITH Items (ItemNumber) AS ( SELECT '1' UNION ALL SELECT '1.1' UNION ALL SELECT '1.1.1' UNION ALL SELECT '10' UNION ALL SELECT '11' UNION ALL SELECT '2' UNION ALL SELECT '2.1' UNION ALL SELECT '20' UNION ALL SELECT '3' UNION ALL SELECT '30' ) SELECT * FROM Items ORDER BY Convert(hierarchyid,'/' + ItemNumber + '/'); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |