【发布时间】:2019-01-23 18:56:34
【问题描述】:
以下查询的行为与我对 CTE 的理解不同,有人可以详细说明为什么会这样吗?
with cte (n) as
(
select 1
union all
select n + 1 from cte where n<10
)
select * from cte
我期待以下输出:
1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10
但我得到了:
1,2,3,4,5,6,7,8,9,10
为什么?
【问题讨论】:
-
重复数字背后的任何原因?
-
没有真正的原因,我只是在寻找一个解释,为什么查询输出不是我所期望的。看来我误解了查询中的某些内容是如何工作的
-
你为什么期望它是那个输出?你认为它是如何工作的?
-
显然您查询的是第二个结果。如果您希望它产生第一个结果,请更改您的查询。
标签: sql tsql sql-server-2014