Sql 递归查询

摘要:
Sql递归查询(给定节点查所有父节点、所有子节点的方法)--查找所有父节点withtabas(selectType_Id,ParentId,Type_NamefromSys_ParamType_V2_0whereType_Id=316--子节点unionallselectb.Type_Id,b.ParentId,b.Type_Namefromtaba,--子节点数据集Sys_ParamType_V
Sql 递归查询(给定节点查所有父节点、所有子节点的方法)
Sql 递归查询第1张Sql 递归查询第2张
--查找所有父节点
with tab as(
 select Type_Id,ParentId,Type_Name from Sys_ParamType_V2_0 where Type_Id=316--子节点
 union all
 selectb.Type_Id,b.ParentId,b.Type_Name 
 fromtab a,--子节点数据集
  Sys_ParamType_V2_0 b  --父节点数据集
 where a.ParentId=b.Type_Id  --子节点数据集.parendID=父节点数据集.ID
)
select * fromtab;
 

--查找所有子节点
with tab as(
 select Type_Id,ParentId,Type_Name from Sys_ParamType_V2_0 where Type_Id=1--父节点
 union all
 selectb.Type_Id,b.ParentId,b.Type_Name 
 fromtab a,--父节点数据集
  Sys_ParamType_V2_0 b--子节点数据集 
 where b.ParentId=a.Type_Id  --子节点数据集.ID=父节点数据集.parendID
)
select * fromtab;

 

--查找从子节点到定级节点的路径
with tab as(
 select Type_Id,ParentId,Type_Name,cast(Type_Id as varchar(100)) asfulltypeid
 from SKU_ProductType where Type_Id=423--子节点
 union all
 selectb.Type_Id,b.ParentId,b.Type_Name,
   cast(a.fulltypeid+','+cast(b.Type_Id as nvarchar(100)) as varchar(100)) asfulltypeid
 fromtab a,--子节点数据集
  SKU_ProductType b  --父节点数据集
 where a.ParentId=b.Type_Id  --子节点数据集.parendID=父节点数据集.ID
)
select * fromtab ;

--------------结果--------------
423    410   蜂花粉      423
410    347   蜂产品      423,410
347    5      营养食品   423,410,347
5        0      健康保健   423,410,347,5
View Code

免责声明:文章转载自《Sql 递归查询》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇微信小程序开发调试工具什么是 Daemon 线程?它有什么意义?下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

SQL SERVER 2008函数大全(含例子)

--SQL SERVER 2008 函数大全 /* author:TracyLee csdncount:Travylee */ /* 一、字符串函数: 1、ascii(字符串表达式) 返回字符串中最右侧字符的ASCII码 例:select ascii('abc') return:97 2、char(字符串表达式) 把ASCII码转换成对应的字符 例:sel...

临时表和全局临时表

临时表就是那些名称以井号 (#) 开头的表。如果当用户断开连接时没有除去临时表,SQL Server 将自动除去临时表。 临时表不存储在当前数据库内,而是存储在系统数据库 tempdb 内。 全局临时表以两个井号 (##) 开头的那些表名。在所有连接上都能看到全局临时表或者这样说只要这个全局临时表存在,那么用户创建会话后对所有的用户都是可见的。如果在创建全...

DVWA(三):SQL injection 全等级SQL注入

(本文不定期更新) 一、所需环境: 1.DVWA 2.web环境 phpstudy/wamp 3.burp suite 二、SQL注入产生的原因:   程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患 用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据或进行数据库操作。 三、关于SQL注入需要注意...

SQL批量添加数据库中所有用户数据表描述

--SQL批量添加数据库中所有用户数据表描述 --操作说明:请先准备一数据表为名称为tblist,表名字段tbname nvarchar(255),数据表描述字段chnname nvarchar(255),将所有已存在的数据表和对应描述添加到数据表tblist中 --脚本编写步骤:1、游标读取所有数据表名;2、读取指定数据表描述;3、判断指定数据表描述是否...

01. SELECT显示和PRINT打印超长的字符

从SQL Server 2005开始,引入了varchar(max) / nvarchar(max) 数据类型,表中可不使用LOB数据类型,从而突破单列8000 / 4000字符的限制,动态SQL也可以拼接得更长;但查看这类字符的时候,在某些地方,字符长度的限制仍然存在,比如: 1. 单列:SSMS里所返回的列值; 2. 动态SQL:print命令打印字符...

查看sql server数据库连接情况

1.通过系统的“性能”来查看:开始->管理工具->性能(或者是运行里面输入 mmc)然后通过添加计数器添加 SQL 的常用统计(MSSQL General Statistics) 然后在下面列出的项目里面选择 用户连接(User Connection) 就可以时时查询到sql server数据库连接数了。 2.通过系统表来查询: 查询数据库当前...