请问:如何对一个字段具有多级深度的表 实现 按深度层次进行排序?(多谢解答,越快越好!) select * from 产品零部件表order by '0000'+replace(productNo,'-','-0000') 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 To CrazyFor(fan) 确实很见效! 已经能够按深度排下去。还有一点不足,就是当第一级深度中零件数目高于几十个时就会出现: 1 10 1-1 1-2 1-2-1 ... 2 20 2-1也就是那10美有出现在 9之后,这个问题,我们再思考一下 select * from 产品零部件表order by '0000'+replace(productNo,'-',' 0000')再试试,最彻底的办法是保证-后的长度一样。 select * from 产品零部件表order by replace(productNo,'-',' -')再试试,最彻底的办法是保证-后的长度一样。 对于这种分级的东东,最好用olap. 其实可以将[结点链]拆分为两个字段:Nodeid、Father。其中Nodeid为递增,在全表中唯一值,Father记录其父结点号即父记录的Nodeid值。再通过增加一Index来区分同级长幼关系。这样可以无限级别扩充的,十分方便有效。Nodeid Father Name Index1 0 产品零件树 1 2 1 B类 2 3 2 B-1产品 14 1 A类 15 2 B-2产品 2SELECT * FROM TABLE_NAME ORDER BY Father,Index1 产品零件树 14 A类 12 B类 23 B-1产品 15 B-2产品 2 To CrazyFor(fan) 我给你发留言了,请看 在线等待,关于存储过程、自定义函数方面的问题! varchar(MAX) 求一条SQL语句(批量更新数据) 如果设置两个主键 【急求】把MYSQL内的数据全部导出到SQL2000? SQL 关于多条update SQL Server 2000 OLE DB连接为什么失败? 求SELECT语句? 问个简单的sql"附加"问题,在线等 两个关系表的查询问题,求助各位大哥!急 触发器中的更新无法定位的问题!!! sqlserver里类似于ACCESS的自动编号是哪个数据类型啊??????
确实很见效! 已经能够按深度排下去。
还有一点不足,就是当第一级深度中零件数目高于几十个时
就会出现:
1
10
1-1
1-2
1-2-1
...
2
20
2-1
也就是那10美有出现在 9之后,这个问题,我们再思考一下
order by '0000'+replace(productNo,'-',' 0000')
再试试,最彻底的办法是保证-后的长度一样。
order by replace(productNo,'-',' -')
再试试,最彻底的办法是保证-后的长度一样。
1 0 产品零件树 1
2 1 B类 2
3 2 B-1产品 1
4 1 A类 1
5 2 B-2产品 2SELECT * FROM TABLE_NAME ORDER BY Father,Index
1 产品零件树 1
4 A类 1
2 B类 2
3 B-1产品 1
5 B-2产品 2
我给你发留言了,请看