首先我们有一张部门表

Mes_Bas_Depts

create table Mes_Bas_Depts

(

Dept_ID uniqueidentifier,

Dept_Number nvarchar(100),

Dept_ParentId, uniqueidentifier

)

1.查询所有本节点下面的所有子节点(儿子孙子等)

with Depts_tree as
( select * from dbo.Mes_Bas_Depts where Dept_ID = '2E855E09-1940-4523-9668-0084A5F2E8A5'
UNION all select a.* from dbo.Mes_Bas_Depts as a
inner join Depts_tree as b on a.Dept_ParentId = b.Dept_ID )
select * from Depts_tree 

2.查询所有的顶级父节点

SELECT * FROM dbo.Mes_Bas_Depts WHERE Dept_ParentId='00000000-0000-0000-0000-000000000000'

因为默认值是‘00000000-0000-0000-0000-000000000000’设定的是guid,如果父id是空值的话就是 is null了。

3.查询本节点上面的说有父节点(父亲,祖父等)

with Depts_tree as
( select * from dbo.Mes_Bas_Depts where Dept_ID = '2E855E09-1940-4523-9668-0084A5F2E8A5'
UNION all select a.* from dbo.Mes_Bas_Depts as a
inner join Depts_tree as b on a.Dept_ID = b.Dept_ParentId )
select * from Depts_tree

4.查询本节点的顶级父节点

with Depts_tree as
( select * from dbo.Mes_Bas_Depts where Dept_ID = '2E855E09-1940-4523-9668-0084A5F2E8A5'
UNION all select a.* from dbo.Mes_Bas_Depts as a
inner join Depts_tree as b on a.Dept_ID = b.Dept_ParentId )
select * from Depts_tree WHERE Dept_ParentId='00000000-0000-0000-0000-000000000000'

5.查询本节点的子节点

select * from Mes_Bas_Depts WHERE Dept_ParentId='2E855E09-1940-4523-9668-0084A5F2E8A5'

6.查询本节点的父节点

SELECT  * FROM dbo.Mes_Bas_Depts WHERE Dept_ID=(
SELECT Dept_ParentId FROM dbo.Mes_Bas_DeptsWHERE Dept_ID = '2E855E09-1940-4523-9668-0084A5F2E8A5')

sql sever 树的基础查询相关推荐

  1. SQL(二)- 基础查询语句

    简单的查询语句(DQL) 下面我们正式来学习查询语句,下面所有查询用到的表均为前面提到的三张表: 员工表中的数据: 部门表中的数据: 薪资表中的数据: 基本查询语句的语法: select 字段 fro ...

  2. C# 连接SQL Sever 数据库与数据查询实例 数据仓库

    大数据时代在编程可能需要用到一些文本内容,不可能全部写到代码里,不好更改,用户也不方便使用 所以需要用到我们的数据库来保存这些数据,直接更改数据 SQL: 下载地址:https://www.micro ...

  3. SQL Sever 数据库视频 (一) (SQL基础及管理工具)

    自考也结束了,接下来应该好好的学习了  接下来总结下数据库视频的知识点. SQL sever基础知识 SQL 语句的特点: .功能强大 .操作简便 .可靠安全性 *(数据库:  存放数据的地方,长期存 ...

  4. SQL sever基础代码

    SQL sever基础代码,自己整理的,希望对萌新有用,不喜勿喷,谢谢!! 有不懂的欢迎在评论区留言一起讨论,此内容不是唯一解,仅作参考 --注:数据库语句基本不分大小写除表名 --1.创建数据库 - ...

  5. groovy怎样从sql语句中截取表名_SQL常用的基础查询语句

    数据分析过程中,我们经常可以看到提数的SQL语句,了解SQL常用的基础查询语句,是检验提数逻辑是否正确的途径之一,并且也能更方便使用SMART BI数据分析工具.今天就让小编带大家走进SQL基础查询的 ...

  6. t - sql的阶梯:超越基础水平2:写子查询

    t - sql的阶梯:超越基础水平2:写子查询 原文链接:http://www.sqlservercentral.com/articles/Stairway+Series/104517/ 通过格雷戈里 ...

  7. 【SQL】SQL(基础查询)、SQL(关联查询)

    原文链接:https://blog.csdn.net/kuangzhixuan/article/details/74299047?utm_source=blogxgwz2 SQL(基础查询) 1.1. ...

  8. SQL语法之基础查询(进阶1)and条件查询(进阶2)

    SQL语法体系学习笔记 SQL语法之基础查询(进阶1)and条件查询(进阶2) SQL语法之排序查询(进阶3)and常见函数(进阶4) SQL语法之分组函数,分组查询(进阶5)and连接查询(sql9 ...

  9. sql sever 2008基础知识

    下面是一些总结,如果执行时发现错误,可以查看错误消息进行解决,也可上网查资料 数据库的组成: 主数据文件:有且只有一个,扩展名为.mdf. 次数据文件:可以没有,也可以有任意个.扩展名为.ndf. 日 ...

最新文章

  1. Oracle XTTS跨平台数据库迁移(从Unix迁移数据库到Linux)_Oracle数据库迁移项
  2. “CCF传播大使”招募公告,期待你的加入!
  3. 关于word插入特殊符号不显示的问题及解决
  4. Balanced Ternary String
  5. C# 获取Excel版本
  6. 利剑无意之JAVA面试题(三)
  7. Java clone() 浅克隆与深度克隆(转)
  8. web前端开发的好工具sublime
  9. 【spingboot基础知识】相关问题汇总
  10. php html 目录列表,PHP获取文件目录列表
  11. 计算机用户在使用计算机文件时6,201606-计算机基础选择题(含答案)(6页)-原创力文档...
  12. python中for语句只有一种写法for in_pythonforin语句
  13. PHP实现文件上传,下载,批量下载
  14. 冰点还原离线激活_冰点还原精灵密钥,小编教你如何激活冰点还原精灵
  15. 如何在CAD编辑软件中画椭圆
  16. html根据出生日期计算星座,0047 JavaScript实现根据输入日期计算所属星座
  17. 企业微信邮箱可以移动办公吗?
  18. 脉宽调制(PWM)的基本原理及其应用实例
  19. An error occurred while attempting to sign 处理方法
  20. # CSS 背景设置

热门文章

  1. git小记-git默认是忽略大小写的
  2. facebook如何搭建网络
  3. 红外遥控小灯亮灭及修改版
  4. 转载自网眼的QQ微博(http://t.qq.com/zhangking)
  5. 搭建阿里云服务器,实现服务端与客户端socket数据通信(详细版)
  6. 【Week2 -3】Switch日程安排
  7. 示例:Linux设备属性节点驱动,以及cat, echo操作
  8. Android 图片压缩方案
  9. N0.29——黑客技巧第一招:断网
  10. 2017美团点评校招前端面试题