[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]
分享到:
相关推荐
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
接下来,使用递归CTE来查询树形结构。递归CTE的基本结构如下: ```sql WITH RecursiveCTE (ColumnList) AS ( -- 基础查询(非递归部分) SELECT ... FROM ... UNION ALL -- 递归部分 SELECT ... FROM ...
只需要修改下面指定修改部分即可使用,原则上支持树形展开和排序,但由于实际数据量很大,因此可以按料段展开(U9 V3.0),欢迎交流。
- **自连接查询**:在SQL中,可以使用自连接来查询树形结构,通过比较当前节点的ID与父节点的ID来获取子节点。 - **CTE(公共表表达式)**:使用WITH关键字创建一个递归公共表表达式,可以从根节点开始遍历整个树...
在这个特定的项目中,标题“左侧树形菜单+右侧页面+sql2000”表明这是一个结合了三层树形菜单、右侧内容区域以及与SQL Server 2000数据库交互的Web应用程序。 首先,我们来深入理解“树形菜单”。树形菜单是一种...
在这个场景下,我们需要设计一个数据库表结构来表示树形菜单的层次关系。一般我们会使用自引用的方式,即一个表中的一条记录可以关联到同表中的其他记录,形成层级关系。 **无限级树形菜单的数据结构设计** - 创建...
### SQL模糊查询并按匹配度排序 在数据库查询操作中,模糊查询是非常常见的一种需求,尤其是在需要处理大量数据且查询条件不确定的情况下。本篇文章将基于提供的SQL查询语句,详细介绍如何进行SQL模糊查询以及如何...
排序是处理树形结构数据时的一个重要方面,尤其是在树形结构的显示上。文章讨论了在客户端或服务器端进行排序的不同方法,并强调服务器端排序的重要性。DAG(有向无环图)的拓扑排序是指孩子的排序值大于其父节点,...
首先,我们需要创建一个 ADO 连接对象,使用 Connection 对象的 Open 方法来连接数据库。然后,我们可以使用 Recordset 对象来执行 SQL 语句,获取查询结果。最后,我们可以使用关闭连接和释放资源。 字段查询 在 ...
在IT行业中,构建一个动态树形权限菜单是常见的需求,特别是在开发管理后台或者Web应用程序时。这个主题聚焦于使用Java后端与JavaScript前端,结合SqlServer2005数据库来实现这样的功能。以下将详细讲解这一技术栈中...
它详细介绍了T-SQL的内部体系结构,包含了非常全面的编程参考,提供了使用Transact-SQL(T-SQL)的专家级指导,囊括了非常全面的编程参考,揭示了基于集合的查询的强大威力,并包含大量来自专家们的参考和建议。...
"notepad++sql格式化插件"是针对Notepad++设计的一个专用工具,用于帮助程序员更方便地管理和美化SQL查询语句。 该插件的主要功能是格式化SQL语句,这意味着它可以自动调整代码的缩进、换行和空格,使得代码更加...
根据提供的文件信息,“SQL结构化查询语言速学宝典 第2版.pdf”这一标题与描述表明这是一本关于SQL(Structured Query Language)的学习指南。本书旨在帮助读者快速掌握SQL的基础知识及其在数据库管理中的应用。下面...
在Java编程中,连接SQL Server数据库并执行查询是常见的任务,尤其当涉及到大量数据时,分页显示就显得尤为重要。本篇文章将详细讲解如何使用Java连接SQL Server数据库,执行查询语句以及实现分页显示。 首先,我们...
在本主题中,我们将深入探讨"sql正宗模糊查询",特别是如何模仿百度搜索引擎的关键字密度排序查询,同时理解不一定要词组匹配的概念。这在大数据检索、搜索引擎优化(SEO)以及提供更精确的用户搜索结果时特别有用。...
jquery的一个插件zTree...此demo是用vs08+sql2005写的 可任意修改 像样更多的功能和外观 就去zTree官网下一个 我写的这个是动态的 就是说是连接数据库的 class表 必须的字段 ID 父ID 还有类别名称。 不懂的可以随时问我
在“在线SQL查询”这个场景中,ExtJS 被用来构建一个用户界面,允许用户在浏览器中直接执行SQL查询,这对于数据库管理或数据分析来说非常方便。 `Ext.ux.window.VisualSQLQueryBuilder` 是ExtJS的一个扩展组件,...
同一个表自身进行连接,常用于处理层次结构或查找相关数据。 ```sql SELECT t1.name AS parent, t2.name AS child FROM table t1, table t2 WHERE t1.id = t2.parent_id; ``` 7. **UNION操作符**: 用于合并两...
以下是一个简单的示例,演示如何使用SQL语言查询工资大于400元,性别为男的职工记录: SELECT 姓名,部门 FROM 工资表 WHERE 工资 > 400 AND 性别 = '男' 在这个示例中,我们使用SELECT语句选择姓名和部门两个字段...
在实现TreeGrid时,通常需要编写一个Struts2 Action来获取数据,该Action可能会调用Spring管理的Service层方法,由Service层进一步调用Hibernate的DAO层来查询数据库中的树形结构数据。 描述中提到的"树形展现数据...