MSSQL父子关系表的SQL查询(SQL Query for Parent Child Relationship)
建立一个数据表 Nodes
create table Nodes(NodeId int,NodeName nvarchar(50),ParentId int)
写入数据
insert into Nodes(NodeId ,NodeName ,ParentId)
values(1,'Node1',0),
(2,'Node2',0),
(3,'Node3',1),
(4,'Node4',1),
(5,'Node5',3),
(6,'Node6',5),
(7,'Node7',2)
数据表显示数据如下:
select * from Nodes
显示ParentId = 1 的全部层级数据
with [CTE] as (
select nodeid,nodename,parentid from [nodes] c where c.[ParentId] = 1
union all
select c.nodeid,c.nodename,c.parentid from [CTE] p, [nodes] c where c.[ParentId] = p.[NodeId]
)
select * from [CTE]
显示nodeid = 1 的全部层级数据
with [CTE] as (
select nodeid,nodename,parentid from [nodes] c where c.[NodeId] = 1
union all
select c.nodeid,c.nodename,c.parentid from [CTE] p, [nodes] c where c.[ParentId] = p.[NodeId]
)
select * from [CTE]
显示ParentId = 1 的全部层级数据和层级级别值
with [CTE] as (
select nodeid,nodename,parentid, lev=1 from [nodes] c where c.parentid = 1
union all
select c.nodeid,c.nodename,c.parentid ,lev=p.lev + 1 from [CTE] p, [nodes] c where c.[ParentId] = p.[NodeId]
)
select * from [CTE]
显示NodeId = 1 的全部层级数据和层级级别值
with [CTE] as (
select nodeid,nodename,parentid, lev=1 from [nodes] c where c.NodeId = 1
union all
select c.nodeid,c.nodename,c.parentid ,lev=p.lev + 1 from [CTE] p, [nodes] c where c.[ParentId] = p.[NodeId]
)
select * from [CTE]
以上SQL语句在SQL2005 测试通过。
MSSQL父子关系表的SQL查询(SQL Query for Parent Child Relationship)相关推荐
- sql server(MsSql)字段命名,表命名,视图命名,SQL语句书写参考
@[TOC](sql server(MsSql)字段命名,表命名,视图命名,SQL语句书写参考) 对我个人来说,字段命名,表命名,视图命名,SQL语句书写都有一套自己的习惯,可以减少维护成本.减少不必 ...
- mysql查询父子关系树_swt 生成树[读取Mysql数据库中的父子关系表]
数据库中的表结构: id pid 1 0 2 1 3 1 4 2 6 2 5 4 需要生成 ...
- MYSQL数据库字段关联_MySQL数据库基础——操作关系表、连接查询
MySQL数据库基础入门--day11 一.操作关联表 1.关联关系: 关联关系有:多对一.多对多和一对多. 一对一关联关系可以应用在以下几方面: (1)分割具有很多列的表 (2)由于安全原因而隔离表 ...
- SQL 遍历父子关系表(二叉树)获得所有子节点 所有父节点
--建立測試環境 Create Table A (IDInt, fatherIDInt, NameVarchar(10) ) Insert A Select 1, NULL, ...
- oracle sys 查询语句,Oracle EBS-SQL (SYS-7):表单个性化查询.sql
animation-timing-function animation-timing-function 规定动画的速度曲线.速度曲线定义动画从一套 CSS 样式变为另一套所用的时间.在平常的取值中,主 ...
- ORACLE表空间使用量查询SQL
SELECT Upper(F.TABLESPACE_NAME) AS 表空间名 , round(D.TOT_GROOTTE_MB / 1024, 2) AS "总大小(G)" ...
- [aaronyang原创] Mssql 一张表3列的sql面试题,看你sql学的怎么样
文章已经迁移到:http://www.ayjs.net/post/99.html 文章已经迁移到:http://www.ayjs.net/post/99.html 文章已经迁移到:http://www ...
- Python学习日志16 - 数据库SQL查询
Python学习日志 RBHGO的主页欢迎关注 温馨提示:创作不易,如有转载,注明出处,感谢配合~ 目录 文章目录 Python学习日志 目录 Python学习日志16课 - 数据库SQL查询 DQL ...
- 数据库系列(5):SQL查询
SQL (Structured Query Language:结构化查询语言) 是用来访问和操作数据库系统的,是一门ANSI 的标准计算机语言.目前最为广泛使用的数据库查询语言就是SQL了,尽管我么说 ...
- php 中 sql 查询语句怎么写,sql查询语句有哪些
sql查询语句:1.查看表结构[SQL>DESC emp]:2.查询所有列[SQL>SELECT * FROM emp]:3.查询指定列:4.查询指定行:5.使用算术表达式:6.使用逻辑操 ...
最新文章
- mvc5入门示例博客(有惊喜)
- LeetCode算法题11:递归和回溯-解数独
- “源文件与模块生成时的文件不同,是否希望调试器使用它?”解决方案
- 【开源】对基于图像背景的字体生成、人体姿势预测、关键点检测、超分辨率等探讨...
- IDEA 设置护眼色RGB值
- QT保留小数点后几位
- 校园网络项目PT模拟
- TCP的粘包问题以及数据的无边界性
- 无法确认设备和计算机之间的连接,代码45的8种解决方法 - 硬件设备没有连接到计算机...
- PLC:学习笔记(西门子)3
- 黄金圈法则:成功者必备的深度思考方法
- UTL_FILE详解
- 从0开始一步一步部署walle
- 图解最常用的10个机器学习算法!(必须收藏)
- 手机视频网页点播服务器,手机视频点播系统搭建完整方案
- PS插件-2.5D Generator 2.0高级版 一键直接实现扁平图转2.5D立体风格
- 基于JAVA菜鸟驿站快递分发系统计算机毕业设计源码+系统+lw文档+部署
- 如何理解机器人学习和研究中的存量和增量
- js 向页面输出html,javascript怎么输出?
- 转化率最高的10个购物网站的经验