表结构如下:

CREATE TABLE [dbo].[sys_org]([id] [nvarchar](50) NOT NULL,[name] [nvarchar](100) NULL,[parentid] [nvarchar](50) NULL,CONSTRAINT [PK_sys_org] PRIMARY KEY CLUSTERED
([id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO

表数据:

1.查询所有上级

-- 查询所有上级
;WITH Tree
AS(SELECT * FROM sys_org WHERE id='D02'UNION ALLSELECT tab.*  FROM sys_org tab INNER JOIN Tree ON tab.id=Tree.parentid)
SELECT *  FROM Tree 

2.查询所有下级

-- 查询所有下级
;WITH Tree
AS(SELECT * FROM sys_org WHERE parentid='0'UNION ALLSELECT tab.*  FROM sys_org tab inner JOIN Tree ON   tab.parentid =Tree.id)
SELECT * FROM Tree  

3.查询当前id的层级

-- 查询当前id的层级
;WITH Tree
AS(SELECT * FROM sys_org WHERE id='B01'UNION ALLSELECT tab.*  FROM sys_org tab INNER JOIN Tree ON tab.id=Tree.parentid)
SELECT COUNT(*) as level FROM Tree  

4.拼接所有上级加当前的id

拼接id,所有的上级id+当前id  例如 id=B01,拼接后的id为:01A01B01
由于查询出来的数据是倒序,id又没有排序规律,因此加了一个空字符串字段“px”

--拼接id,所有的上级id+当前id  例如 id=B01,拼接后的id为:01A01B01
--由于查询出来的数据是倒序,id又没有排序规律,因此加了一个空字符串字段“px”
;WITH Tree
AS(SELECT *,'' px FROM sys_org WHERE id='B01'UNION ALLSELECT tab.* ,'' px FROM sys_org tab INNER JOIN Tree ON tab.id=Tree.parentid)
select (select ''+ id from (SELECT *, ROW_NUMBER() OVER(order by px) as row FROM Tree )bbb order by row desc  FOR XML PATH (''))as orgid

SQL Server 递归查询上下级相关推荐

  1. SQL SERVER 递归查询(4)——递归层级查询

    我们在做递归查询的时候,有时候需要查询特定某一级的数据,如果我们的数据上没有标注该数据的层级数,那么我们可以在递归的时候自己加一个,并在读取的时候作为查询条件来用,测试数据: --测试数据 if no ...

  2. sql server 通过上下级关系字段用递归方法生成上下级层级关联数据字段

    一.场景 有一个数据库表里面存储了一个上下级关系的字段,通过存储这个觉得的上级id.如果要查找所有的上级或者下级就要通过循环每个去查找.如下 id p_id name 1 0 老板 2 1 副总 3 ...

  3. SQL Server递归查询无限级分类

    2019独角兽企业重金招聘Python工程师标准>>> WITH cte_parent(OrderOpenId, SharedOpenId, SubjectId) AS (SELEC ...

  4. sql server递归查询

    如下图,查询每个节点之间的关系,以及层级 表中存储的数据如下: 数据类型: 1.查询每个节点之间的关系,以及层级 逻辑: 该表自连接,son_id 与 father_id 相等,一步一步连接下去 WI ...

  5. SQL Server CTE 递归查询全解

    在TSQL脚本中,也能实现递归查询,SQL Server提供CTE(Common Table Expression),只需要编写少量的代码,就能实现递归查询,本文详细介绍CTE递归调用的特性和使用示例 ...

  6. [SQL Server] TSQL实现SQL Server中CTE 递归查询

    参考博客:https://www.cnblogs.com/ljhdo/p/4580347.html 简介 递归查询主要应用于层级结构表的查询: 叶节点-> 根节点的查询 根节点-> 叶节点 ...

  7. 【SQL SERVER】递归查询

    有示例数据,表名为SYS_Department id departmentName parentId remark isEnable staffId 2 总经理 1 总经理 1 3 账务部 2 账务部 ...

  8. T-SQL Enhancement in SQL Server 2005[上篇]

    较之前一版本,SQL Server 2005可以说是作出了根本性的革新.对于一般的编程人员来说,最具吸引力的一大特性就是实现了对CLR的寄宿,使我们可以使用任意一种.NET Programming L ...

  9. SQL Server 2008中原生的分层数据类型:hierarchyid

    SQL Server 2008中SQL应用系列--目录索引 如果是在SQL 2000中,我们需要读取分层结构数据时,不得不借助递归.在SQL server 2005中,我们可以使用CTE,当然,好的数 ...

最新文章

  1. 敏捷DoD完成定义的多种形态
  2. ArcGIS学习记录—KMZ KML与SHP文件互相转换
  3. oracle关于分区,关于Oracle分区
  4. 商业智能让营销更精确
  5. Go语言并发编程简介
  6. java 抛出异常_我的Java Web之路51 - Java异常基础
  7. VS2015 C#利用QrCodeNet生成QR Code
  8. 拓端tecdat|R语言动态可视化:制作历史全球平均温度的累积动态折线图动画gif视频图
  9. 智能化施工(综合管线)
  10. 中兴通讯加入LoRa Alliance董事会 推动中国运营级LoRa产业链发展
  11. 【Python网络蜘蛛 · 8】:moviepy模块实现音频+视频的合成
  12. css彩虹·,web前端入门到实战:纯CSS画动态彩虹
  13. 家用洗地机买什么牌子好一点?家用洗地机推荐
  14. php基本变量,PHP-语法及变量基本操作
  15. 初识Continuation
  16. ACTION_DATE_CHANGED不响应
  17. Word控件Spire.Doc 【文本】教程(1) ;C#/VB.NET:从 Word 文档中删除文本或图像水印
  18. 顾问风采 | LF AI Data 基金会完成换届,堵俊平担任董事会主席、星爵担任会员总代表...
  19. 有限状态机FSM详解(5)——层次状态机HSM
  20. C/C++、OS、网络面经

热门文章

  1. 解决Margin塌陷问题方法
  2. python 工厂设计模式
  3. SAP-PP 生产订单中组件发货库存地点如何确定
  4. Meteor 初级入门 三
  5. Th4.6:模板全特化、偏特化(局部特化)详述
  6. PT927G光猫获取超管+删除tr069教程
  7. prometheus搭建
  8. 【学习记录】HT32F52352舵机控制
  9. 树莓派4安装centos7并配置环境
  10. 干货丨开源软件的商业路径