with…as结构的应用2

sql_server | 2016-10-31 15:53:19 | 阅读 1405 次 | 评论(0)

用地递归的方式处理数据的层级关系,是对with…as 的一个重要应用方式

drop table smMenu

create table  smMenu (ID varchar(50),menuname varchar(50),menuclassname varchar(50),parentID varchar(50))
insert into smMenu values('0','根目录','class0',null)
insert into smMenu values('01','销售管理','class01','0')
insert into smMenu values('0101','报价管理','class0101','01')
insert into smMenu values('010101','制订报价单','class010101','0101')
insert into smMenu values('010102','报价单查询','class010102','0101')                                                                   
insert into smMenu values('0102','订单管理','class0102','01')
insert into smMenu values('010201','订单录入','class010201','0102')
insert into smMenu values('010202','订单审核','class010202','0102')
insert into smMenu values('02','计划管理','class02','0')
insert into smMenu values('0201','主计划','class0201','02')
insert into smMenu values('020101','MRP计划','class020101','0201');


 with cte as  
 (  
 select a.ID,a.menuname,a.parentID from smMenu a where id='0'  
 union all   
 select k.ID,k.menuname,k.parentID  from smMenu k inner join cte c on c.id = k.parentID  
 )

 select * from cte  order by id

注:Oracle,sqlserver,均支持;MySQL不支持这种临时视图,其他with…as结构应用参考https://weibo.com/5193584071/E5534cEdV

文章评论,共0条
游客请输入验证码
最新评论