点击关注上方“SQL数据库开发”,设为“置顶或星标”,第一时间送达干货SQL专栏SQL基础知识第二版
SQL高级知识第二版

问题描述

在我们日常统计中,经常需要统计到全国各地区的一些销售情况,而全国各地区的行政区划是怎么样的,我们需要做一张省市区的基础表来一一对应。

问题分析

我们在网上通过查找每个省市区的地区编码,可以获取一份完整的省市区SQL脚本。如下图:

(具体的SQL脚本可以在“阅读原文”中获取,提取码:emwf )

我们通过分析可以得出省市区的层级关系,这样我们就可以根据这个层级关系来制作一份完整的行政区划表了。

解决办法

我们获取的原始表的表名叫China,下面我们来制作这个行政区划表

WITH CTE AS (SELECT  ID,NAME,PId,1 AS LEVELFROM  ChinaWHERE  pId = 0UNION ALLSELECT  t.id,t.NAME,t.pId,cte. LEVEL + 1 AS LEVELFROM China t  JOIN CTE ON t.pId = CTE.id
)

使用我们之前介绍的递归查询,将PID和ID进行关联,找出每条记录的层级,用1,2,3,4来表示,如下图:

有了每个城市的层级标记,我们就可以根据层级标记来指定它们具体的城市等级。

SELECT
t1.name AS [省]
,t2.name AS [市]
,t3.name AS [县]
,t4.name AS [区]
FROM (SELECT * FROM CTE WHERE LEVEL=1) AS t1
LEFT JOIN
(SELECT * FROM CTE WHERE LEVEL=2) AS t2 ON t1.id=t2.pId
LEFT JOIN
(SELECT * FROM CTE WHERE LEVEL=3) AS t3 ON t2.id=t3.pId
LEFT JOIN
(SELECT * FROM CTE WHERE LEVEL=4) AS t4 ON t3.id=t4.pId

如下图:

这样一份完整的城市区划表就建好了。

最后给大家分享我写的SQL两件套:《SQL基础知识第二版》和《SQL高级知识第二版》的PDF电子版。里面有各个语法的解释、大量的实例讲解和批注等等,非常通俗易懂,方便大家跟着一起来实操。有需要的读者可以下载学习,在下面的公众号「数据前线」(非本号)后台回复关键字:SQL,就行
——End——后台回复关键字:1024,获取一份精心整理的技术干货
后台回复关键字:进群,带你进入高手如云的交流群。
推荐阅读
Linux之父:财务自由以后,我失眠了!
潘叔卖酒一个月能挣几个W?
如何写出高质量的 SQL 代码?
不懂就问:为什么 delete 表数据,磁盘空间还是被占用?
社会内卷的真正原因:华为内部论坛的这篇雄文火了

用SQL生成一份中国行政表相关推荐

  1. 一分钟生成1000份中国省会城市知识测试卷及答案

    一.系统环境  Windows 10 22H2版,Windows Feature Experience Pack 120.2212.4190.0 Anaconda3-2022.05-Windows-x ...

  2. 如何用SQL生成一张日期维度表?

    点击关注公众号,SQL干货及时获取 后台回复:1024,获取海量学习资源 问题描述 输入想要生成日历的年份,通过调用存储过程,即可生成该年的全部日历. 创建表结构 我们根据常见的日历表来创建一个含有年 ...

  3. 使用PowerDesigner导入SQL生成数据表模型

    一直听公司做数据库的同事说用PowerDesigner设计数据库模型, 博主闲来无事决定拿来小试牛刀. 用SQL生成数据表模型: 1.启动PowerDesigner,选择"File" ...

  4. django 使用原生SQL语句反向生成MODELS.PY中的表结构

    在一次工作中,有这么一个问题,就是要导入的数据字段不确定,但是还想使用django的ORM来对数据进行操作.. 琢磨了许久,弄个不完善的方案,但功能是能实现的,主要是思路.废话不多说了,丑陋的展示一下 ...

  5. 用友T+财务软件数据库——SQL生成含上级科目名称的标准化凭证表

    select * from GL_Journal; select * from AA_Account; --标准化凭证表 drop table 用友凭证表; select * from 用友凭证表; ...

  6. 复用数据库之中国地区表(除台湾外精确到地级市)

    SQL脚本.原po建表思路很不错,有点像没优化的并查集的感觉,我略作修改,在这里谢过了.建表语句就不写了,手动也可吧,表名location,一共426条记录,包括1个根节点中国,34个省.直辖市和行政 ...

  7. Hive Sql 大全(hive函数,hive表)

    Hive Sql 大全 本节基本涵盖了Hive日常使用的所有SQL,因为SQL太多,所以将SQL进行了如下分类: 一.DDL语句(数据定义语句): 对数据库的操作:包含创建.修改数据库 对数据表的操作 ...

  8. 程序员/设计师能用上的 75 份速查表(转)

    75 份速查表,由 vikas 收集整理,包括:jQuery.HTML.HTML5.CSS.CSS3.JavaScript.Photoshop .git.Linux.Java.Perl.PHP.Pyt ...

  9. 完整SQL分页存储过程(支持多表联接)

    Code /*********************************************************   * 作    用:数据分页(完整SQL分页存储过程(支持多表联接)) ...

最新文章

  1. 网络游戏外挂核心封包揭密
  2. python语言有哪两个系列_(转)Python学习笔记系列——Python是一种纯粹的语言
  3. HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面
  4. LeetCode - Easy - 14. Longest Common Prefix
  5. 洛谷 P1141 01迷宫(dfs)
  6. 大哥你需求里说只要工作流引擎组件,怎么真正需要的东西这么.悲剧了,客户需求无止境...
  7. Linux管道函数使用
  8. PHP 修改配置文件后重启命名
  9. Modelbuilder快速入门
  10. win10双显卡怎么切换amd和英特尔_win10双显卡怎么切换
  11. 跟我一起学docker(九)--持续系统集成了解下git
  12. 通过名称识别和处理弹出窗口
  13. jquery的blockUI遮罩层的使用
  14. PS模仿欢乐颂电视剧海报的水彩效果
  15. 输入输出管理:假脱机技术(SPOOLING)
  16. java dispose事件_求助!!为什么我的dispose()不起作用
  17. “Physically-Based Rendering for Indoor Scene Understanding Using Convolutional Neural Networks”论文阅读
  18. 重要极限一:x趋近于0,sinx/x的极限
  19. 百度沈抖:文心一言将通过百度智能云对外提供服务
  20. 罗森伯格助力杭州G20峰会保电工程-清江智能化变电站

热门文章

  1. 怎么查看CAD图纸?CAD建筑图纸有什么快速看图的技巧吗?
  2. 【敬伟ps教程】套索、魔棒工具、快速选择工具、选区的编辑和调整
  3. Win8系统无法上网的原因与处理方法【绿色】
  4. NVIDA CUDA
  5. Java基础代码语法讲解下
  6. MTA网络基础考试准备指南
  7. Linux系统克隆和快照
  8. RHCE模拟练习题整理
  9. 爬虫:东方财富网股票数据爬取
  10. 博彦科技JAVA笔试题及答案