+ -
当前位置:首页 → 问答吧 → 递归查询

递归查询

时间:2011-11-20

来源:互联网

我的表 code_catalog_structure(catalogid varchar(50),parentid(50),title varchar(50))
递归查询出 根 catalogid为 '*ROOT*' 的所有按层次查询出来,语句
with father as
(
  select *,lev=0 from code_catalog_structure where parentid = '*ROOT*' 
  union all
  select a.*,lev=lev+1 from code_catalog_structure a join father b on a.parentid = b.catalogid
)
select parentid,catalogid,lev from father
不明白的地方
1。为啥报“查询已完毕但有错误,消息 530,级别 16,状态 1,第 2 行
语句被终止。完成执行语句前已用完最大递归 100。”
2。查询结果应该是
比如
  *ROOT* 0
  我是一层 1
  我是一层的一 1
  我是二层 2
  我是二层的一 2
但是结果给来了
好几遍这样的
  *ROOT* 0
  我是一层 1
  我是一层的一 1
  我是二层 2
  我是二层的一 2
  *ROOT* 0
  我是一层 1
  我是一层的一 1
  我是二层 2
  我是二层的一 2
。。。。。
请指点,我想要的结果应该是指定catalogid得出它下面的所有,请给代码,查了好多帖子,结果大都死循环,谢谢

作者: zlj002   发布时间: 2011-11-20

俺半夜发贴,希望大侠一早就给个惊喜,实在是郁闷,还有如果没有这个cte我该怎么查询,谢谢啦

作者: zlj002   发布时间: 2011-11-20