以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于BOM的序号排序问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=70112)

--  作者:dj68301367
--  发布时间:2015/6/16 9:11:00
--  关于BOM的序号排序问题

如下这样的序号号,有3.1.1或者后面还会更长的,请问一下用什么列数据类型是什么。怎么样才能正确认排序。

 

1
2
3
3.1
3.1.1
3.1.1.1
3.1.1.2
3.1.2
4
5
6
7
8
9
10
11


--  作者:Bin
--  发布时间:2015/6/16 9:21:00
--  
字符串类型无法正常排?  那就得增加一个辅助列排序了
--  作者:dj68301367
--  发布时间:2015/6/16 9:31:00
--  
以下是引用Bin在2015/6/16 9:21:00的发言:
字符串类型无法正常排?  那就得增加一个辅助列排序了

是呀,那这样好像很麻烦。没其它办法了吗》


--  作者:大红袍
--  发布时间:2015/6/16 9:37:00
--  

 必须加一个辅助列才能正常排序,比如

 

 1记录为 1 * 100000

 

 2记录为 2 * 100000

 

 3.1.2记录为 3 * 100000 + 1 * 10000 + 2 * 1000

 

----------------------

 

 也可以

 

 1记录为 1.0.0.0.0

 

 2记录为 2.0.0.0.0

 

 3.1.2记录为 3.1.2.0.0

 


--  作者:2900819580
--  发布时间:2017/4/1 11:34:00
--  
9.1    9*10 + 1*1 = 91
9.10  9*10+10*1 =100
9.11  9*10+11*1 =101
.....
9.2
9.20
.....
10    10*10+0*1 =100
10.1 10*10+1*1 =101

老师,按你方法也不行。。。。。
9*10 + 1*1 = 91
9*10+10*1 =100


--  作者:有点蓝
--  发布时间:2017/4/1 12:08:00
--  
位数要够大

9.1    9*1000 + 1*1 = 9001
9.10  9*1000+10*1 =9010
9.11  9*1000+11*1 =9011

--  作者:2900819580
--  发布时间:2017/4/1 13:29:00
--  
有点蓝老师,因为序号是不确定的,层次也不确定的,我怎么判断要留几位。
--  作者:有点蓝
--  发布时间:2017/4/1 15:24:00
--  
那就设置到整型能表示的最大位数,比如8位,9位,还不够的话就把列改为高精度,设置到15位


或者设置为字符型,前面补0,补足位数