• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > 使用SQLSERVER 2005/2008 递归CTE查询树型结构的方法

使用SQLSERVER 2005/2008 递归CTE查询树型结构的方法

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了递归,CTE,树型结构等相关知识,希望本文的分享对您有所帮助

我们经常遇到树型结构,把它们显示在一个类似TreeView控件上的情况。这时我们可以使用Recursive Common Table Expressions(CTE)实现

下面是一个简单的Family Tree 示例:
代码如下:
DECLARE @TT TABLE (ID int,Relation varchar(25),Name varchar(25),ParentID int)
INSERT @TT SELECT 1,' Great GrandFather' , 'Thomas Bishop', null UNION ALL
SELECT 2,'Grand Mom', 'Elian Thomas Wilson' , 1 UNION ALL
SELECT 3, 'Dad', 'James Wilson',2 UNION ALL
SELECT 4, 'Uncle', 'Michael Wilson', 2 UNION ALL
SELECT 5, 'Aunt', 'Nancy Manor', 2 UNION ALL
SELECT 6, 'Grand Uncle', 'Michael Bishop', 1 UNION ALL
SELECT 7, 'Brother', 'David James Wilson',3 UNION ALL
SELECT 8, 'Sister', 'Michelle Clark', 3 UNION ALL
SELECT 9, 'Brother', 'Robert James Wilson', 3 UNION ALL
SELECT 10, 'Me', 'Steve James Wilson', 3

----------Query---------------------------------------
;WITH FamilyTree
AS(
SELECT *, CAST(NULL AS VARCHAR(25)) AS ParentName, 0 AS Generation FROM @TT
WHERE ParentID IS NULL
UNION ALL
SELECT Fam.*,FamilyTree.Name AS ParentName, Generation + 1 FROM @TT AS Fam
INNER JOIN FamilyTree ON Fam.ParentID = FamilyTree.ID
)SELECT * FROM FamilyTree

Output:


希望对您有帮助

Author: Petter Liu

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 如何让MySQL中单句实现无限层次父子关系查询
  • MySQL关于递归的一个问题
  • 使用函数递归实现基于php和MySQL的动态..
  • SQL临时表递归查询子信息并返回记录的代码
  • 使用SQLSERVER 2005/2008 递归CTE查询树型结构的方法
  • SQLSERVER2005 中树形数据的递归查询
  • SQLserver2008使用表达式递归查询
  • MSSQL中递归SQL查询语句实例说明-
  • sqlserver另类非递归的无限级分类(存储过程版)
  • oracle 使用递归的性能提示测试对比

相关文章

  • 2017-05-11远程连接mysql 授权方法详解
  • 2017-05-11MySQL中主从复制重复键问题修复方法
  • 2018-12-05推荐10个mysql主从架构
  • 2018-12-05从MySQL复制功能中得到的一举三得实惠分析
  • 2017-05-11Centos中彻底删除Mysql(rpm、yum安装的情况)
  • 2018-12-05mysql LOAD语句批量录入数据
  • 2018-12-05不同数据库之间导入导出功能介绍
  • 2017-05-11sql格式化工具集合
  • 2017-05-11mysql 添加索引 mysql 如何创建索引
  • 2017-05-115个常用的MySQL数据库管理工具详细介绍

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 不同数据库之间导入导出功能介绍
    • mybatis属性详解
    • Access 数据类型与 MS SQL 数据类型的相应
    • Oracle与Mysql主键、索引及分页的区别小结
    • PHP使用mysqli扩展连接MySQL数据库
    • mysql 控制台程序的提示符 prompt 字符串设置
    • mysql GTID主从复制详解
    • mysql 字符集的系统变量说明
    • 在Win下mysql备份恢复命令
    • SQL数据操作基础(初级)5

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有