前言:
当前你们对“sqlserver查询第一条数据”都比较关注,同学们都需要剖析一些“sqlserver查询第一条数据”的相关内容。那么小编在网摘上汇集了一些对于“sqlserver查询第一条数据””的相关资讯,希望同学们能喜欢,小伙伴们一起来学习一下吧!在SQL Server中经常会进行递归查询,用来查询子节点上一级或者N层上级的数据,这时候With子句就派上了用场,下面以行政区域数据为例, 展示在SQLSERVER中如何进行递归查询:
drop table test_a;create table test_a ( id int,name varchar(10), pid int);insert into test_aselect 1,'中国',0 union allselect 2,'江苏省',1 union allselect 3,'南京市',2 union allselect 4,'雨花台区',3 union allselect 5,'江宁区',3 union allselect 6,'鼓楼区',3select * from test_a
下面SQL语句递归查询某个区域(如鼓楼区)的所有上级行政区(父节点):
with cte as(select * from test_a where id=6union allselect test_a.* from test_a ,cte where test_a.id=cte.pid)select * from cte order by id;
下面递归查询父节点下级各层区域数据:
with cte_a (id, name, pid, level) as( select test_a.*, 0 level from test_a where pid=0 union all select test_a.*, cte_a.level+1 level from test_a, cte_a where test_a.pid = cte_a.id)select case when level=0 then name else REPLICATE(' ', level) + '└' + name end, id, pidfrom cte_a;
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #sqlserver查询第一条数据