首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

一个捆扰小弟我好几天的分组排序有关问题 真的不好解决

2012-02-01 
一个捆扰我好几天的分组排序问题 真的不好解决我要做的是一个菜单的排序问题idfatherIdmenuPathnumber1071

一个捆扰我好几天的分组排序问题 真的不好解决
我要做的是一个菜单的排序问题      
id                       fatherId                           menuPath                                   number      
107                           1                                       /107                                           38    
108                         107                                     /107/108                                     2    
109                         107                                     /107/109                                     1    
110                         109                                     /107/109/110                             5    
111                         109                                   /107/109/111                               4    
112                           1                                     /112                                             23    
113                         112                                   /112/113                                       2    
114                         112                                   /112/114                                       1    
115                         114                                   /112/114/115                               9    


116                         114                                   /112/114/116                               8    
   
我要实现的是先按menuPath分组     /107开头的是一组   /112开头的又是一组      
   
fatherId是1的话代表是父菜单     父和父之间要排序(number38和number23)....最后父菜单下面的子菜单也要排序   按字段number排序   如下是107的子菜单      
  108           107                     /107/108                 2        
  109           107                     /107/109                 1        
(我的菜单可以是无限级的     108和109的父菜单是107   113和114的父菜单是112     110和111的父菜单是109     115和116的父菜单114)      
   
最后实现后的效果需要这个      
id             fatherId                 menuPath                       number      
112                 1                           /112                               23               (一级父菜单)      
114                 112                       /112/114                         1           (一级下的子菜单,也可以是二级父菜单)      
116                 114                       /112/114/116                 8               (二级父菜单下的子菜单)      
115                 114                       /112/114/115                 9               (二级父菜单下的子菜单)      
113                 112                       /112/113                         2             (一级下的子菜单,也可以是二级父菜单)      
   
107                 1                           /107                                 38                   (一级父菜单)      
109                 107                     /107/109                           1         (一级下的子菜单,也可以是二级父菜单)          


111                 109                     /107/109/111                   4             (二级父菜单下的子菜单)      
110                 109                     /107/109/110                   5             (二级父菜单下的子菜单)      
108                 107                     /107/108                           2         (一级下的子菜单,也可以是二级父菜单)      
说的够详细了吧..大家吧   我脑袋都要爆炸了.可以随便增加字段     不管什么方法只要能实现就OK了嘿嘿

[解决办法]
如果你要查询出树型结构的话那么你的表结构设计是不对的
id fatherId number
就足够了,oracle下使用
select * from T
start with id=1--1为根节点的值
connecte by prio id=fatherId
用mssql下没写过,应该是使用自连接吧

热点排行