有关树形结构的查询--Sql
2008-05-03 00:18
127 查看
树形结构是一类重要的非线性结构,在关系型数据库中如何对具有树形结构的表进行查询,从而得到所需的数据是一个常见的问题。
关系型数据库将数据按表结构形式进行组织。它对表格的处理方便灵活,且易学易用,因而得到广泛的应用。关系型数据库所处理的表格是线性结构的,表的每一行对应着一个数据元素,称做一条记录。记录与记录之间呈线性排列,彼此间没有联系。
然而,在解决实际问题时,常常会遇到非线性结构的数据。如下表所示,每一条纪录中的上级代码,就和其他纪录有着联系,这样就形成了一棵具有层次结构的树,它可以用下面的图来形象地表示:
树形结构是一种结点之间有分支,并具有层次关系的结构,它非常类似于自然界中的树。 树结构在客观世界中大量存在,例如家谱、行政组织机构都可用树形象地表示。树在计算机领域中也有着广泛的应用,例如在编译程序中,用树来表示源程序的语法结构;在数据库系统中,用树来组织信息;在分析算法的行为时,用树来描述其执行过程。
在关系数据库中对具有树型结构的表常用的3种查询:
1. 节点A的位于第n层的父亲节点的信息。如:员工黄菁菁的两级上司的信息。
--创建函数GetManager
CREATE FUNCTION dbo.GetManager ( @employee_id AS char(5), @level AS int = 1)
RETURNS char(5) AS
BEGIN
IF @level = 0
RETURN @employee_id
--如果 @level 为0,表示已经找到其上司号码
RETURN dbo.GetManager(
(SELECT [上级号码] FROM [员工信息] WHERE [员工号码] = @employee_id), @level -1)
-- 如果 @level 大于 0,则返回直接上司的 @level-1 级的上司号码
END
文章来源于 http://www.cnblogs.com/zhangzs8896 版权归原作者所有
关系型数据库将数据按表结构形式进行组织。它对表格的处理方便灵活,且易学易用,因而得到广泛的应用。关系型数据库所处理的表格是线性结构的,表的每一行对应着一个数据元素,称做一条记录。记录与记录之间呈线性排列,彼此间没有联系。
然而,在解决实际问题时,常常会遇到非线性结构的数据。如下表所示,每一条纪录中的上级代码,就和其他纪录有着联系,这样就形成了一棵具有层次结构的树,它可以用下面的图来形象地表示:
树形结构是一种结点之间有分支,并具有层次关系的结构,它非常类似于自然界中的树。 树结构在客观世界中大量存在,例如家谱、行政组织机构都可用树形象地表示。树在计算机领域中也有着广泛的应用,例如在编译程序中,用树来表示源程序的语法结构;在数据库系统中,用树来组织信息;在分析算法的行为时,用树来描述其执行过程。
在关系数据库中对具有树型结构的表常用的3种查询:
1. 节点A的位于第n层的父亲节点的信息。如:员工黄菁菁的两级上司的信息。
--创建函数GetManager
CREATE FUNCTION dbo.GetManager ( @employee_id AS char(5), @level AS int = 1)
RETURNS char(5) AS
BEGIN
IF @level = 0
RETURN @employee_id
--如果 @level 为0,表示已经找到其上司号码
RETURN dbo.GetManager(
(SELECT [上级号码] FROM [员工信息] WHERE [员工号码] = @employee_id), @level -1)
-- 如果 @level 大于 0,则返回直接上司的 @level-1 级的上司号码
END
文章来源于 http://www.cnblogs.com/zhangzs8896 版权归原作者所有
相关文章推荐
- 有关树形结构的查询--Sql
- 有关树形结构的查询--Sql
- MySql的sql语句中添加存储过程或者存储函数来实现Oracle中的start with ……connect by prior……递归(树形结构数据)查询
- 如何用SQL查询语句获取Oracle表 树形结构的记录(PL/SQL )
- sql查询树形结构的数据 n+1问题
- SQL处理多级分类,查询结果呈树形结构
- Oracle SQL树形结构查询
- sql 树形结构查询语句 (sql 2005+)
- SQL处理多级分类,查询结果呈树形结构
- SQL 中树形结构查询的运用
- SQL 查询树形结构的数据
- oracle 树形结构单表 查询 递归SQL
- 单表查询树形结构的SQL语句
- oracle 下分页查询,与树形结构Sql 写法
- Oracle SQL树形结构查询
- SQL处理多级分类,查询结果呈树形结构
- oracle中一个树形关联表的查询排序sql
- Oracle查询树形结构
- 【greenplum】greenplum 数据字典实践--通过sql脚本查询表结构,拼装建表语句
- Sql Server按树形结构排序查询表记录(CSDN论坛转载)