[quote="junjie314"] 有谁能不能说具体的实现!~~现在如果光排序的那没问题,但是各节点之间不是有顺序的吗??这个顺序是可以改的..现在主要问题是如果要改这个的话就比较麻烦了..比如有两个父节点顺序是23和38 现在把23这个改成39的话..那23下面的所有子节点都要修改..
这个好象比较麻烦,要么是我设计的问题???[/quote]
首先创建一个SQL函数:weightValue,如下
[code]CREATE FUNCTION weightValue(@idValue int) RETURNS bigint AS
BEGIN
DECLARE @return bigint
DECLARE @fatherID int
DECLARE @number int
DECLARE @menuPath VARCHAR(50)
DECLARE @treeLevel int
DECLARE @weightLevel bigint
SET @return = 0
SET @weightLevel = 1
SELECT @fatherID=fatherID,@menuPath=menuPath,@number=number FROM treeTable WHERE id=@idValue
SELECT @treeLevel=len(@menuPath)-len(replace(@menuPath,'/',''))
WHILE(@treeLevel<9) --此处9为目录层次数,经测试bigInt可以支持9级目录,再多目录层次就会出现益出
BEGIN
SET @weightLevel=@weightLevel*100
SET @treeLevel=@treeLevel+1
END
SET @return=@number*@weightLevel
IF(@fatherID = 1)
BEGIN
RETURN(@return)
END
RETURN ([dbo].weightValue(@fatherID)+@return)
END[/code]
然后一个简单的查询SQL即可,如下:
[code]SELECT id,fatherId,menuPath,number FROM treeTable ORDER BY [dbo].weightValue(id)[/code]
查询结果就是想要的排列顺序,结果如下,因为结果是实时查询,所以节点可以随时配置
[code]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[/code]
分享到:
相关推荐
mysql 树形结构查询,使用存储过程,实现mysql的树形结构查询
oracle树状结构查询即层次递归查询,是sql语句经常用到的,在实际开发中组织结构实现及其层次化实现功能也是经常遇到的。这篇文章给大家介绍了Oracle递归树形结构查询功能,需要的朋友参考下
软件开发经常要用到树形结构,采用sql实现树形结构是一种不错的方式,此例支持sql2005
SqlServer树形结构、层次查询 结果如下: 1 1 2 1-2 4 1-2-4 5 1-2-5 10 1-2-5-10 8 1-2-5-8 6 1-2-6 3 1-3 7 1-3-7 11 1-3-7-11 9 1-3-7-9 12 1-3-7-9-12 13 1-3-7-9-13 14 1-3-7-9-14
针对父子级数据目录查询, 以前都是逐级的去根据父级id查询子集目录, 查出后最后再在代码中拼成树形结构, 相当复杂,我们可以利用 mybatis 提供的 collection 标签自动组织树形结构
最新全国省市区行政划分表,树形结构,全国统一(城市编码、区域编码、邮政编码),及各市区行政坐标(经纬度),方便初始化地图中心及标注点,等级划分三级联动效果
此文档中详细的记载了,SQL Server分组排序取数据的实现,希望可以帮到下载的朋友们!
sql模糊查询并按匹配度排序 ,实现 匹配+排序 的搜索引擎功能!!!!
内容:本章介绍SQL语句的条件查询和排序操作。 产品:Oracle 10g 技术:SQL语句、Sql*Plus 难度:★★☆☆☆
树形结构(增删改查刷新等功能附SQL脚本) 是java编写 。jsp + serlvet 。实现 一个可视化。增删改查的树形结构。
只需要修改下面指定修改部分即可使用,原则上支持树形展开和排序,但由于实际数据量很大,因此可以按料段展开(U9 V3.0),欢迎交流。
下面小编就为大家带来一篇sqlserver实现树形结构递归查询(无限极分类)的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
一种基于树形结构的Sql结果集向Json数据的转换算法.pdf
随机分组之后的随机排序,随机分组之后的随机排序,随机分组之后的随机排序
帆软:排序问题(通过帆软设置或者sql排序) 测试文件 + sql 脚本
sql 查询 所有子节点 方法已经调试通过(sql-server 2005)
内含工程源码+开发文档+sqlsever数据库,可直接导入myeclipse
使用分组,排序和聚合函数以及连接查询 1.掌握通配符的用法 2.掌握 GROUP BY 子句的使用 3.掌握 ORDER BY子句的使用 4.掌握 DISTINCT关键字的使用 5.掌握聚集函数的使用
case ROW_NUMBER() OVER(PARTITION BY TT.sheet_no ORDER BY TT.sheet_no 分组内排序用法
sqlserver+group by分组查询分页存储过程