您的当前位置:首页 >应用开发 >SQL如何求解省市区中的递归问题? 正文
时间:2025-11-04 19:00:17 来源:网络整理编辑:应用开发
递归递归是指程序调用自身的一种编程技巧,在SQL中也有递归查询。下面我们通过一个省市区的示例来讲解递归查询的用法。问题有如下一张表City,图片希望得到如下结果图片该如何写这个查询?问题分析我们从上面
递归是求解区中指程序调用自身的一种编程技巧,在SQL中也有递归查询。省市下面我们通过一个省市区的归问示例来讲解递归查询的用法。
有如下一张表City,求解区中
图片
希望得到如下结果
图片
该如何写这个查询?省市
我们从上面的问题中发现,省市区全部在同一列中,亿华云计算归问而他们的求解区中ParentID有某种联系。仔细看市一级的省市ParentID正好是省的ID,而区一级的归问ParentID正好是市的ID,b2b信息网这完全符合我们递归定义。求解区中
根据我们上面的省市分析我们先写出递归部分
复制--递归部分 ;WITH CTE AS ( SELECT ID,NAME,ParentId,1 AS Level FROM City WHERE parentId=0 UNION ALL SELECT t.id,t.NAME,t.parentId,cte.Level+1 AS Level FROM City t JOIN CTE ON t.parentId=CTE.id ) SELECT * FROM CTE;1.2.3.4.5.6.7.8.递归查询写完后,可以查看一下递归部分CTE里面的归问内容
图片
然后我们只需要将省市区一一列出来即可,注意下面的求解区中这段代码要和上面的递归部分一起执行。
复制SELECT t1.name AS [一级地名] ,省市t2.name AS [二级地名] ,t3.name AS [三级地名] FROM (SELECT * FROM CTE WHERE LEVEL=1) AS t1 INNER JOIN (SELECT * FROM CTE WHERE LEVEL=2) AS t2 ON t1.id=t2.parentId INNER JOIN (SELECT * FROM CTE WHERE LEVEL=3) AS t3 ON t2.id=t3.parentId ORDER BY 1,2,31.2.3.4.5.6.7.8.9.10.11.结果如下:
图片
感兴趣的小伙伴可以动手试一下。b2b供应网
归问课桌电脑置物架的安装教程(简单易懂的步骤让你轻松安装电脑置物架)2025-11-04 17:48
MacBook开机重装系统教程(详细步骤教你如何以MacBook开机进行系统重装)2025-11-04 17:16
摩托罗拉XT1250(性能出众、摄影强大、超长续航,带给你无限可能)2025-11-04 17:14
TCLL65C1-CUD(细腻画质、智能化功能,TCLL65C1-CUD引领电视新时代)2025-11-04 17:14
利用无peu盘装系统的教程及技巧(无peu盘装系统,实现简单高效,方便快捷安装)2025-11-04 17:05
如何使用启动盘进行系统设置(详解启动盘的制作和使用方法)2025-11-04 16:47
电脑USB驱动安装失败的解决方法(遇到USB驱动安装失败怎么办?一键解决办法来了!)2025-11-04 16:46
彻底解决ARP断网攻击的方法(保障网络安全的关键措施)2025-11-04 16:40
电脑小白入门教程(联想电脑操作指南,帮助新手迅速上手)2025-11-04 16:39
AOCQ2778VQEWS(出色色彩表现与高分辨率,满足专业需求)2025-11-04 16:24
密码错误的原因及解决方法(电脑密码错误可能的原因和应对办法)2025-11-04 18:50
使用镜像U盘轻松安装系统(一步步教你如何利用镜像U盘快速安装操作系统)2025-11-04 18:49
以易一键装机教程(使用易一键装机工具,让电脑装机不再困扰你)2025-11-04 18:43
如何修复电脑无法识别移动硬盘的问题(解决电脑无法识别移动硬盘的简单方法)2025-11-04 18:25
WebP文件转换为JPG格式的完全指南(简单易懂的教程及关键技巧)2025-11-04 18:19
XPS15系统转移教程(详细指南和关键步骤,帮助您顺利迁移系统和数据)2025-11-04 17:31
Win7USB装机教程(以Win7USB装机教程为指导,快速完成电脑系统安装)2025-11-04 17:26
JVCGZ-HM400(卓越画质、强大功能与出色性能的完美结合)2025-11-04 16:47
电脑共享使用教程2025-11-04 16:31
探索MPXT2CHA的卓越性能和出色功能(一部引领科技潮流的先锋之作)2025-11-04 16:26