当前位置: 代码迷 >> Sql Server >> 递归疑点
  详细解决方案

递归疑点

热度:74   发布时间:2016-04-24 08:59:35.0
递归疑问
select 1 i into #t
declare @n int=10
;with t as
(select * from #t
union all
select i+1 from t where i<@n
)
select * from t

说能帮我解释下,为什么结果只有10行 而不是512行,每次递归 去重的 还是只匹配一行?
------解决思路----------------------
接分
------解决思路----------------------
引用:
我知道了,递归递归,每次换回的只是当前递归部分而不是递归链中所有结果集

严格来说 就是 只有上一级结果 和本次查询产生关系,跨级就不在作用域了
------解决思路----------------------
友情提示, union all没有去重的喔.
------解决思路----------------------
引用:
Quote: 引用:

我知道了,递归递归,每次换回的只是当前递归部分而不是递归链中所有结果集

严格来说 就是 只有上一级结果 和本次查询产生关系,跨级就不在作用域了


小刀
你也偶尔逛逛吧
  相关解决方案