博客
关于我
SQL Server递归查询在Highgo DB中实现 (APP)
阅读量:391 次
发布时间:2019-03-05

本文共 1058 字,大约阅读时间需要 3 分钟。

作者:瀚高PG实验室 (Highgo PG Lab)

目录

环境

文档用途

详细信息

环境

系统平台:Microsoft Windows (64-bit) 10

版本:5.6.4

文档用途

在Highgo DB中实现和SQL Server一样效果的递归查询

详细信息

1、SQL Server表创建以及测试数据添加

 

Create table GroupInfo([Id] int,[GroupName] nvarchar(50),[ParentGroupId] int)

 

 

Insert GroupInfo

select 0,'某某大学',null union all

select 1,'外语学院',0 union all

select 2,'英语专业',1 union all

select 3,'日语专业',1 union all

select 4,'英语专业一班',2 union all

select 5,'英语专业二班',2 union all

select 6,'日语专业一班',3 union all

select 7,'日语专业二班',3 union all

select 8, '法学院',0 union all

select 9, '刑法学专业',8 union all

select 10,'经济法学专业',8 union all

select 11,'刑法学专业一班',9 union all

select 12,'刑法学专业二班',9 union all

select 13,'经济法学专业一班',10 union all

select 14,'经济法学专业二班',10

 

2、SQL Server递归查询语句

 

--构造递归路径

with

CTE

as

(

    select Id,GroupName,ParentGroupId,GroupPath=CAST( GroupName as nvarchar(max)) from GroupInfo where Id=0

    union all

    select G.*,CAST(CTE.GroupPath+'//'+G.GroupName as nvarchar(max)) as GroupPath from CTE

    inner join GroupInfo as G on CTE.Id=G.ParentGroupId

)

select * from CTE order by ParentGroupId

更多详细信息请登录【瀚高技术支持平台】查看 

转载地址:http://hyowz.baihongyu.com/

你可能感兴趣的文章
navicat操作mysql中某一张表后, 读表时一直显示正在载入,卡死不动,无法操作
查看>>
Navicat连接mysql 2003 - Can't connect to MySQL server on ' '(10038)
查看>>
Navicat连接mysql数据库中出现的所有问题解决方案(全)
查看>>
Navicat连接Oracle出现Oracle library is not loaded的解决方法
查看>>
Navicat连接Oracle数据库以及Oracle library is not loaded的解决方法
查看>>
Navicat连接sqlserver提示:未发现数据源名并且未指定默认驱动程序
查看>>
navicat连接远程mysql数据库
查看>>
Navicat通过存储过程批量插入mysql数据
查看>>
Navicat(数据库可视化操作软件)安装、配置、测试
查看>>
navigationController
查看>>
NB-IOT使用LWM2M移动onenet基础通信套件对接之APN设置
查看>>
NBear简介与使用图解
查看>>
Vue过滤器_使用过滤器进行数据格式化操作---vue工作笔记0015
查看>>
Ncast盈可视 高清智能录播系统 IPSetup.php信息泄露+RCE漏洞复现(CVE-2024-0305)
查看>>
NCNN中的模型量化解决方案:源码阅读和原理解析
查看>>
NCNN源码学习(1):Mat详解
查看>>
nc命令详解
查看>>
NC综合漏洞利用工具
查看>>
ndarray 比 recarray 访问快吗?
查看>>
ndk-cmake
查看>>