为什么这个CTE像柜台一样?

离开

以下查询的行为与我对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

为什么?

斯坦利

CTE本质上是可以引用自身的可重用子查询,因此您的最终查询等同于:

SELECT 1
UNION ALL (SELECT 2 
           UNION ALL (SELECT 3 ...

直到n达到10。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么这个字典值都一样?

为什么可以像数组一样索引对象?

为什么不能像变量一样覆盖管道?

为什么唯一命令像交叉命令一样起作用?

为什么这个箭头函数与签名相同的非箭头函数不一样?

为什么这个函数在执行几次时就像循环一样

三.js MeshBasicMaterial 为什么这个颜色不一样,看图

为什么在将ls传递到mkdir时奇怪的像时间戳一样的包含?

为什么像 word2vec 一样使用 word2bits RAM?

为什么优先级队列不能像普通队列一样环绕?

为什么我可以像调用实例方法一样调用类方法?

为什么多次等待需要像Task.WhenAll()一样的时间

为什么TF2的Dataset.map不能像正常的for循环遍历一样?

为什么无限远的日期看起来像NA,却像日期一样行事?

为什么我的TreeViewItems像RadioButtons一样起作用?

为什么5 :: Sum Integer像文字一样工作?

为什么cd像推送目录一样追加目录?

为什么这种转换不能像C#一样在Powershell中工作?

为什么不能像普通的数据CD一样仅“ dd” CD音频?

为什么ref参数不能像out参数一样被忽略?

为什么打字稿像字符串一样添加两个数字?

为什么列表没有像字典一样安全的“获取”方法?

为什么FLAGS像其他变量一样存储值

为什么Prolog使用= <而不是像大多数语言一样使用<=?

为什么水平边距不会像垂直边距一样崩溃?

为什么我不能像服务一样获得Symfony Finder?

为什么ggplotly无法像ggplot一样在rmarkdown中工作

为什么我可以在C#中像数组一样初始化List?

为什么此哈希表查找探针像它一样?