with recursive

应用场景
with recursive常用于建立一个完整的序列,它是一个递归的查询子句,会把查询出来的结果再次代入到查询子句中继续查询直到满足一定的停止条件
基本语法
with recursive table_A(column_A,column_B,column_C) as (
    select a as column_A,b as column_B,c as column_C [form XXX]
    union all
    select column_A+1, column_B-1,column_C from table_A where 停止条件
)
  1. 基本形式与with as相同,都是创建一个临时表供后续查询使用
  2. with recursive后接临时子查询的名称,括号内写字段名称
  3. 第一行是递归表的初始行,可以是自己编的数也可以是从其他表中取的数
  4. 第二行是union all
  5. 第三行是递归运算行,从第一行的数据开始不断循环,对特定的字段进行递归计算,此处示例为column_A和column_B,column_C则保持不变
  6. 第三行的where要接循环终止条件,当达到什么条件时,不再继续递归计算,输出最终的表
完整示例
with recursive s(id) as (
    select max(customer_id) as id from Customers
  union all
  select id-1 from s where id>1
)
输出结果:生成的表s包含字段id,该id列为Customers表中的最大id,减1一直到1为止


全部评论

相关推荐

06-12 17:46
门头沟学院 Java
运营你豪哥:来说重点: ​1.项目前置,时间倒序。​​ 2.​项目描述强化结果与量化效果(STAR原则里的R)。​​ ​3.个人技能精炼,明确掌握程度,突出核心。​​ ​4.增加强有力开头的个人总结部分。​​ 5.​优化教育背景(成绩排名)、合并奖项与活动。​​
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 17:10
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务