sqlserver CTE

以前使用的是2000  读那种菜单子菜单数据  都要自己写个存储过程来递归

 

2005后就支持CTE查询了  方便不少 而且很容易明白

 

 

代码
   
     
with dt(c_name,pkid,c_parent)
as
(
select c_name,pkid,c_parent from CategorySelf
where pkid = 2 --这是查第一级菜单的条件
union all
select p.c_name,p.pkid,p.c_parent from CategorySelf p inner join
dt on p.c_parent
= dt.pkid
)

select
* from dt where pkid != 2

 

你可能感兴趣的:(sqlserver)