在SqlServer中通过SQL语句实现树状查询

摘要:
1CREATEPROCEDURE[dbo].[GetTree]2@Idint3AS4BEGIN5withcteas6(7selectId,Pid,Name,0aslvlfromEntity8whereId=@Id9unionall10selecte.Id,e.Pid,e.Name,lvl+1fromctecinnerjoinEntitye11onc.Id=e.Pid12)13select*from
1 CREATE PROCEDURE [dbo].[GetTree] 
2 @Id int
3 AS
4 BEGIN
5     with cte as
6 (
7         select Id,Pid,Name,0 as lvl fromEntity
8         where Id = @Id
9         union all
10         select e.Id,e.Pid,e.Name,lvl+1 from cte c inner joinEntity e
11         on c.Id =e.Pid
12 )
13     select * fromcte
14 END

免责声明:文章转载自《在SqlServer中通过SQL语句实现树状查询》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C++单元小结之Vector与迭代器(续),内置数组、vector和string,文件数据处理(文件操作续),字符串流(续)用例要素(非原创)下篇

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

相关文章

ORACLE权限管理—创建只读账号

创建只读用户:grant connect to user; grant create session to user; 1.创建角色 CREATE ROLE SELECT_ROLE 2.给角色分配权限 grant SELECT ANY DICTIONARY to SELECT_ROLE; grant SELECT ANY TABLE to SELECT_R...

利用ADO操作外部数据——Excel之VBA(15)

引例: 在VBA里录制导入现有外部数据的宏查看宏代码  1 Sub 宏1() 2 ' 3 ' 宏1 宏 4 ' 5 6 ' 7 Application.CutCopyMode = False 8 With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array(...

如何优化mysql查询速度

1、应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。 2、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 3、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id fr...

el-autocomplete select事件传递多个参数

转自:https://yuyuye958.github.io/2019/03/10/el-autocomplete/ 问题 <el-autocomplete v-model="state" :fetch-suggestions="querySearchAsync" placeholder="请输入内容" @select="handle...

Oracle查看正在执行的存储过程

正在执行的存储过程 select owner,name from v$db_object_cache where type like '%PROCE%' and locks >0 and pins >0; 正在执行的sql select a.program, b.spid, c.sql_text,c.SQL_IDfrom v$session a...

关联查询-高级查询

 关联查询-高级查询 关联查询:表与表之间想要关联查询,关键点是连接条件。 连接条件也就是两张表中都有的字段。一般若有n张表,连接条件至少有n-1个。 实验中:SELECT DISTINCT E.ENAME, D.DNAME,D.DEPTNO FROM EMP E, DEPT D WHERE E.DEPTNO=D.DEPTNO;实验中emp表和dept表的...