sqlserver with as 双向递归

递归上下级部门,获取相关的部门单位

  1. 部门表:
  2. sql语句:

    with Temp1 as
    (
    select GroupID,G_ParentID from sys_Group  where GroupID={当前部门GroupID}
    union all
    select sys_Group.GroupID,sys_Group.G_ParentID from Temp1  inner join sys_Group on Temp1.G_ParentID=sys_Group.GroupID
      ),
    Temp2 as
     (
    select GroupID,G_ParentID from sys_Group  where GroupID={当前部门GroupID}
    union all
    select sys_Group.GroupID,sys_Group.G_ParentID from Temp2  inner join sys_Group on Temp2.GroupID=sys_Group.G_ParentID
     )
    select GroupID from  Temp1 union  select GroupID from Temp2
    
时间: 2024-10-05 11:37:57

sqlserver with as 双向递归的相关文章

SqlServer 三级联动、递归表

SqlServer 省市县三级联动 三张表递归合并成一张表sql如下: insert into table2(area_name,area_parent_id)select province,'0' from provincesinsert into table2(area_name,area_parent_id)select city,c.id from cities ainner  join provinces b on a.provinceid=b.provinceidinner join

SQLSERVER中WITH AS递归来实现ORACLE的INSTR函数以及固定分隔符字符串截取

分享个sqlserver的sql给大家,能用with as的递归实现oracle中的instr函数,并且能将分隔符的字符串解析,例如: 字符串为:'O3O,30,4834,348934,AA,09WOFJOWE,FW' 解析完成: 1)实现oracle的instr函数,sql如下: WITH CTE1 AS ( SELECT '1' AS ID , 'O3O,30,4834,348934,AA,09WOFJOWE,FW' AS STR ), CTE2 AS ( SELECT 1 AS LEVEL

SQLserver数据库中关于递归的查询使用

度量快速开发平台数据库支持sqlserver数据库,我们之前习惯的oracle递归查询用的 start with dept_id=1000 connect by prior dept_id=upper_id的方式就不灵了.比如我们的组织机构里面有很多下级机构及部门,要查询出登录人所在的机构,并列出该机构下所有机构和部门.Sqlserver写法如下:  with NewTable as ( select a.dept_id,a.dept_name,a.upper_id,a.tree_code,a.

SqlServer:CTE函数处理递归(WITH语法)

我们在做分类处理的时候,总会遇到递归的处理,比如说地区就是一个例子,中国--北京--西城区,我们可以把这样的信息存储在一个数据表中,用ParentID区分根节点和叶子节点.假如我们要做导航,得到了”西城区”,但是还要得到他的父级,或夫父级,一种方式是用程序来处理,也是很简单,另一种方式就是用数据库的功能.既然数据库能完成这件事,何必在用程序呢? 在SqlServer2005以前的版本中,也能处理这种情况,不过当时用的是存储过程,代码也比较多,表设计的时候,还的加一个表示“深度”的字段,当时我也写

MySQL数据中分级分组显示数据

前面已经有了SqlServer数据分级分组显示数据了.今天又来做一个MySQL数据库中的分级分组显示,SqlServer中用到了递归,这里为了简单就直接把根的数据显示为0 ,而不用递归了. 在MySQL数据库中创建数据表: CREATE TABLE `categories` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '分类id' , `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_gene

dozer学习笔记

简介 Dozer是一款javaBean的映射工具,用于解决一个类到另外一个类的自动适配功能,它即支持简单的映射,也支持复杂类型的双向递归映射(官网). 示例 举个例子,假设说我们现在有User(用户).UserDetail(用户详细)两个实体类,但对外公布时,我们发布了UserDto.UserSimpleDto两个传输对象,现在我们来实现他们之间的相互转化: 用户:记录登录名.密码 1 /** 2 * @author X 3 */ 4 public class User { 5 6 privat

TensorFlow实战12:Bidirectional LSTM Classifier

https://blog.csdn.net/felaim/article/details/70300362 1.双向递归神经网络简介 双向递归神经网络(Bidirectional Recurrent Neural Networks, Bi-RNN),是由Schuster和Paliwal于1997年首次提出的,和LSTM是在同一年被提出的.Bi-RNN的主要目标是增加RNN可利用的信息.RNN无法利用某个历史输入的未来信息,Bi-RNN则正好相反,它可以同时使用时序数据中某个输入的历史及未来数据.

2019年,这8款自动语音识别方案你应该了解!

2019年,这8款自动语音识别方案你应该了解! 原创: AI前线小组 译 AI前线 1周前 作者 | Derrick Mwiti翻译 | 核子可乐编辑 | LindaAI 前线导读: 基于计算机的人类语音识别与处理能力,被统称为语音识别.目前,这项技术被广泛用于验证系统中的某些用户,以及面向谷歌智能助手.Siri 或者 Cortana 等智能设备下达指令. 从本质上讲,我们通过存储人声与训练自动语音识别系统以发现语音当中的词汇与表达模式.在本文中,我们将一同了解几篇旨在利用机器学习与深度学习技术

SqlServer里,一条sql进行递归删除

Server 2005中提供了公用表表达式(CTE),使用CTE,可以使SQL语句的可维护性,同时,CTE要比表变量的效率高得多. 存储过程方法: 1 create proc up_delete_nclass 2 @did int  3 as 4 with my1 as(select * from News_Class where id = @did 5  union all select News_Class.* from my1, News_Class where my1.id = News