sql分组排(树形结构查询+排序)

  • 我要做的是一个菜单的排序问题   
  • id           fun_name           parent_id            sort_id  
  • 1               root                     0                      1
  • 107           |name                  1                      38  
  • 108           || her                   107                   2
  • 110           |||is109                109                   1
  • 109           || his                    107                   1  
  • 98             |namesf               1                       2
  • 111           |||is109_2            109                    3  

     我要做的是按照 parent_id 分组,然后在按照sort_id排序即

 

  • id           fun_name           parent_id            sort_id  
  • 1               root                     0                      1
  • 107           |name                  1                      38  
  • 108           || her                   107                   2
  • 109           || his                    107                   1  
  • 110           |||is109                109                   1
  • 111           |||is109_2            109                    3  
  • 98             |namesf               1                       2

意思就是父类排序,然后当前父类面就跟随子类,排序,子类下面还有...第一个父类排序完了就是第二个父类

1        1            1

    1-1     1-1          1-1

       1-1-1    1-1-1    1-1-1

2        2              2

  2-1   2-2           2-3

3         3             3

  3-3     3-3        3-3          层级式排序,第一个父类下面是子类一直到此结束,然后再是第二个类别排序,一次类推,N级。

 

宝慕林4294392
浏览 509回答 3
3回答

素胚勾勒不出你

两种办法,一种办法是把所有数据都载入到程序中,然后用c#处理 另一种办法是修改表的设计,加上TreeCode字段,TreeCode字段值的规律如下 00001> 00001>00001> 00001>00002> 00001>00003> 00002> 00002>00001> 00002>00002> 00002>00003> 这个TreeCode字段是冗余字段,通过它可以很方便的取到你要求排序的层级数据 如果这张表的数据量很小的话,建议你把数据载入到程序中用C#写个递归函数处理。如果数据量很大,并且你也有条件修改表结构的话,可以添加冗余字段,解决此问题。

白衣染霜花

select ROW_NUMBER() over(partition by parent_id order by stort_id) as rownum,Parent_ID,stort_id from 表,你再改改

犯罪嫌疑人X

谢谢您的回复,我是sqlserver,你给的方案是 oracle ,不过后来还是用sql的  CTE 解决了,就是一楼说的加一个冗余字段....不过非常感谢您的参与,谢谢~!祝你天天开心........
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server