数据库表循环

在一个表中存有两个字段:OrgID,ParentOrgID。OrgID是主键,ParentOrgID是上级单位OrgID。需求来了,现在需要根据当前表的任意一个OrgID值无限递归查出它下级所有OrgID.

BEGIN
 DECLARE @ParentOrgID VARCHAR(32); --上级组织机构ID 
 CREATE TABLE #TempBase_Org   --临时主表
 (   
 OrgID VARCHAR(32)
 ) 
   insert #TempBase_Org select OrgID from dbo.Base_Org where [email protected] --根据上级ParentOrgID查出当前子节ID,然后插入临时表中。
   while @@rowcount<>0  -- 这里最关键了,进行循环递归调用。
   BEGIN
   insert #TempBase_Org select a.OrgID from Base_Org a
   inner join #TempBase_Org b  on a.ParentOrgID=b.OrgID and
   not exists(select 1 from #TempBase_Org where OrgID=a.OrgID)  
   END 
   INSERT INTO #TempBase_Org VALUES(  @ParentOrgID); --将上级id插入临时表中。
END

以上是主要的sql语句。

时间: 2024-08-16 16:30:28

数据库表循环的相关文章

基于ORACLE数据库的循环建表及循环创建存储过程的SQL语句实现

一.概述 在实际的软件开发项目中,我们经常会遇到需要创建多个相同类型的数据库表或存储过程的时候.例如,如果按照身份证号码的尾号来分表,那么就需要创建10个用户信息表,尾号相同的用户信息放在同一个表中. 对于类型相同的多个表,我们可以逐个建立,也可以采用循环的方法来建立.与之相对应的,可以用一个存储过程实现对所有表的操作,也可以循环建立存储过程,每个存储过程实现对某个特定表的操作. 本文中,我们建立10个员工信息表,每个表中包含员工工号(8位)和年龄字段,以工号的最后一位来分表.同时,我们建立存储

jmeter循环读取数据库表中的数据

先创建一个jdbc请求 请求在结果树正确后,添加一个循环控制器,循环次数定义数据库表查询的数量 variables names设置为col,那么如下变量会被设置为: col_#=2 (总行数) col_1=第1列, 第1行 col_2=第1列, 第2行 添加一个计数器用来坐变量拼接 添加请求引用N,使用函数助手 查看结果 jdbc运行结果 查看循环读取的结果 原文地址:https://www.cnblogs.com/only-love-you-519920/p/9135006.html

由笛卡尔积现象分析数据库表的连接

首先,先简单解释一下笛卡尔积. 现在,我们有两个集合A和B. A = {0,1}     B = {2,3,4} 集合 A×B 和 B×A的结果集就可以分别表示为以下这种形式: A×B = {(0,2),(1,2),(0,3),(1,3),(0,4),(1,4)}: B×A = {(2,0),(2,1),(3,0),(3,1),(4,0),(4,1)}: 以上A×B和B×A的结果就可以叫做两个集合相乘的'笛卡尔积'. 从以上的数据分析我们可以得出以下两点结论: 1,两个集合相乘,不满足交换率,既

ECshop 数据库表结构

ECshop 数据库表结构 -- 表的结构 `ecs_account_log`CREATE TABLE IF NOT EXISTS `ecs_account_log` (`log_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID号',`user_id` mediumint(8) unsigned NOT NULL COMMENT '用户登录后保存在session中的id号,跟users表中的user_id对应',`us

C# 将DataTable表中的数据批量插入到数据库表中的方法

C#中有时候需要将内存中的数据批量插入到数据库表中,使用for循环进行批量插入不但耗时而且会频繁操作数据库. 针对数据量很少的可以使用for循环插入,但是针对于数据量大的则不推荐使用for循环插入,推荐使用sql的块处理插入. 块处理不但耗时少而且不会频繁对数据库进行操作,只是需要注意的一点是DataTable中的列必须与表的列完全一致. 如下代码是批量插入的一个函数,自测可用. 1 #region 使用SqlBulkCopy将DataTable中的数据批量插入数据库中 2 /// <summa

C# .Net :Excel NPOI导入导出操作教程之将Excel文件读取并写到数据库表,示例分享

using (FileStream fileReader = File.OpenRead(@"C:\Users\Administrator\Desktop\112.xls"))        {            //创建工作簿对象接收文件流(Excel信息)            IWorkbook workbook = new HSSFWorkbook(fileReader);            //工作簿共有几个表            //int count = wor

【转】-ECshop数据库表结构

-- 表的结构 `ecs_account_log`CREATE TABLE IF NOT EXISTS `ecs_account_log` (`log_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID号',`user_id` mediumint(8) unsigned NOT NULL COMMENT '用户登录后保存在session中的id号,跟users表中的user_id对应',`user_money` deci

将Hive统计分析结果导入到MySQL数据库表中(一)——Sqoop导入方式

最近在做一个交通流的数据分析,需求是对于海量的城市交通数据,需要使用MapReduce清洗后导入到HBase中存储,然后使用Hive外部表关联HBase,对HBase中数据进行查询.统计分析,将分析结果保存在一张Hive表中,最后使用Sqoop将该表中数据导入到MySQL中.整个流程大概如下: 下面我主要介绍Hive关联HBase表--Sqoop导出Hive表到MySQL这些流程,原始数据集收集.MapReduce清洗及WEB界面展示此处不介绍. 一.HBase数据库表 hbase(main):

ECshop 数据库表结构 -- 表的结构

ECshop 数据库表结构 -- 表的结构 `ecs_account_log` CREATE TABLE IF NOT EXISTS `ecs_account_log` ( `log_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID号', `user_id` mediumint(8) unsigned NOT NULL COMMENT '用户登录后保存在session中的id号,跟users表中的user_id对应',