oracle 层次化查询(行政区划三级级联)

现在将上面的行政区划按代码分为三个级别:省(后四位为0)/市(后两位为0)/县,同时分别标出他们的级别,这样的话,便于后期根据不同的级别查询。

前提:
数据库表DM_xzqh样例(部分):
代码如下:
DM MC
230000 黑龙江省
230100 哈尔滨市
230101 市辖区
230102 道里区
232700 大兴安岭
230103 南岗区
230104 道外区
230108 平房区
230109 松北区
230110 香坊区
230111 呼兰区
230112 阿城区
230123 依兰县
238000 农垦分局
230124 方正县
230125 宾县
230126 巴彦县
230127 木兰县
230128 通河县
230129 延寿县
230182 双城市
230183 尚志市

现在将上面的行政区划按代码分为三个级别:省(后四位为0)/市(后两位为0)/县,同时分别标出他们的级别,这样的话,便于后期根据不同的级别查询。

首先,根据上面表拓展出新的一行s%ign%ignore_a_1%re_a_1%bm,该行用于表示该行政区划所属的上级行政区划。具体代码如下:
代码如下:
select t.dm,t.mc,case
when substr(t.dm,3)=’0000′ then 1
when substr(t.dm,5)=’00’ then to_number(substr(t.dm,1,2)||’0000′)
when substr(t.dm,5)!=’00’ then to_number(substr(t.dm,1,4)||’00’)
else 0
end sjbm from dm_xzqh t

结果如下:
序号 DM MC SJBM
1 230000 黑龙江省 1
2 230100 哈尔滨市 230000
3 230101 市辖区 230100
4 230102 道里区 230100
5 232700 大兴安岭 230000
6 230103 南岗区 230100
7 230104 道外区 230100
8 230108 平房区 230100
9 230109 松北区 230100
10 230110 香坊区 230100
11 230111 呼兰区 230100
12 230112 阿城区 230100
13 230123 依兰县 230100
14 238000 农垦分局 230000
15 230124 方正县 230100
16 230125 宾县 230100
17 230126 巴彦县 230100
18 230127 木兰县 230100
19 230128 通河县 230100
20 230129 延寿县 230100
21 230182 双城市 230100
22 230183 尚志市 230100
然后,就可以利用oracle的层次关系将该查询出的数据分级了,具体代码如下:
代码如下:
select level,dm,mc,sjbm from
(select t.dm,t.mc,case
when substr(t.dm,3)=’0000′ then 1
when substr(t.dm,5)=’00’ then to_number(substr(t.dm,1,2)||’0000′)
when substr(t.dm,5)!=’00’ then to_number(substr(t.dm,1,4)||’00’) end sjbm from dm_xzqh t)
[where level=2 ]–该条件语句用于查询具体的每一个级别的行政区划
start with sjbm=1
connect by prior dm=sjbm
[order by level];

结果如下:
序号 level DM MC SJBM
1 1 230000 黑龙江省 1 //省 ,level->1
2 2 230100 哈尔滨市 230000//市,level->2
3 3 230101 市辖区 230100//县,level->3
4 3 230102 道里区 230100
5 3 230103 南岗区 230100
6 3 230104 道外区 230100
7 3 230108 平房区 230100
8 3 230109 松北区 230100
9 3 230110 香坊区 230100
10 3 230111 呼兰区 230100
11 3 230112 阿城区 230100
12 3 230123 依兰县 230100
13 3 230124 方正县 230100
14 3 230125 宾县 230100
15 3 230126 巴彦县 230100
16 3 230127 木兰县 230100
17 3 230128 通河县 230100
18 3 230129 延寿县 230100
19 3 230182 双城市 230100
20 3 230183 尚志市 230100
21 3 230184 五常市 230100
22 2 232700 大兴安岭地区 230000

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/806894.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
如何在京东开店铺卖货?如何在京东开店铺卖货赚钱
上一篇 2025年11月26日 20:43:11
大麦网演唱会预订官网 大麦网门票在线购买入口
下一篇 2025年11月26日 20:43:15

相关推荐

  • VSCode搭建Flutter开发环境(移动开发,完整配置指南)

    本文详细指导如何在VSCode中搭建高效的Flutter开发环境,包括安装JDK、配置JAVA_HOME、安装Android Studio并设置ANDROID_HOME、安装VSCode及Flutter和Dart插件、配置FLUTTER_HOME环境变量,通过flutter doctor检查并解决A…

    2026年9月23日
    100
  • VSCode如何配置Scala开发环境 VSCode搭建Scala项目的完整教程

    首先安装jdk 11或17并正确配置java_home和path环境变量;2. 通过包管理器或官网安装sbt,用于项目构建与依赖管理;3. 在vscode中安装scala (metals)插件,以获得代码补全、错误检查等语言服务;4. 使用sbt new scala/scala-seed.g8创建项…

    2026年9月23日
    100
  • 解决TCPDF保存文件权限问题的完整指南

    本文旨在解决使用tcpdf在%ignore_a_1%中生成pdf并保存到服务器(’f’模式)时遇到的“permission denied”错误,尤其是在macos环境下。核心问题通常源于不正确的服务器文件路径或目标文件夹缺乏写入权限。教程将详细阐述如何构建正确的绝对文件路径,…

    2026年9月22日
    300
  • 如何在DaVinciResolve中制作AI视频?教你利用AI工具优化视频流程

    如何在DaVinciResolve中制作AI视频?教你利用AI工具优化视频流程如何在DaVinciResolve中制作AI视频?教你利用AI工具优化视频流程如何在DaVinciResolve中制作AI视频?教你利用AI工具优化视频流程如何在DaVinciResolve中制作AI视频?教你利用AI工具优化视频流程

    达芬奇Resolve并非一键生成AI视频的%ignore_a_1%,而是通过内置AI功能与外部AI服务协同,提升视频制作效率。其核心在于利用Neural Engine驱动的智能工具,如Magic Mask实现精准抠像、Voice Isolation分离人声、Smart Reframe适配多平台构图、…

    2026年9月22日 用户投稿
    700
  • MySQL最新版本如何下载?官方下载指南

    MySQL最新版本如何下载?官方下载指南MySQL最新版本如何下载?官方下载指南MySQL最新版本如何下载?官方下载指南MySQL最新版本如何下载?官方下载指南

    要下载mysql,推荐从官网直接下载;选择社区版或商业版取决于用途;下载时需选对操作系统和版本;安装遇到问题可查错误提示并搜索解决方案;验证安装成功可用命令行登录。下载步骤包括访问官网、选择版本与操作系统、使用installer、注册账号、开始下载安装。安装后配置root密码、字符集等。验证方式为命…

    2026年9月22日 用户投稿
    300
  • Flyway多数据库与CI/CD测试集成策略

    本文深入探讨了在CI/CD流程中,如何高效地配置Flyway以管理多数据库环境下的迁移,尤其关注集成测试场景。我们将比较使用真实数据库服务、Testcontainers以及Flyway自身多数据库配置的优劣,并提供关于分离生产与测试环境迁移脚本的实用策略,旨在确保开发、测试与生产环境的数据一致性与流…

    2026年9月22日
    300
  • 解决PHP扩展缺失错误:phpinfo验证与服务重启指南

    本文旨在解决%ignore_a_1%脚本运行时提示特定扩展(如json、mbstring)缺失的问题,即便用户已在php配置中手动启用。核心解决方案是利用`phpinfo()`函数验证扩展的实际加载状态,并强调在修改php配置后,必须重启相关的web服务器或php-fpm服务,以确保新的配置生效。 …

    2026年9月22日
    400
  • Oracle定时任务

    oracle 介绍 oracle job 是应用在数据库层面,用来定时执行存储过程或者 SQL 语句的定时器。 测试数据代码语言:javascript代码运行次数:0运行复制 –建测试表CREATE TABLE TEST_JOB( DATETIME DATE, BEG_DATE VARCHAR2(…

    2026年9月22日
    500
  • VSCode连接Modelsim仿真工具(调试技巧分享,波形分析指南)

    首先确保Modelsim路径加入系统PATH,安装VSCode的HDL扩展,配置tasks.json定义编译、仿真任务,并编写Tcl脚本自动化add wave、run等操作,通过问题匹配器解析错误,利用Tcl实现参数化仿真与自动化测试,结合Makefile或脚本提升大型项目管理效率。 将VSCode…

    2026年9月22日
    400
  • MySQL数据备份自动化实施_MySQL定时任务与脚本管理

    MySQL数据备份自动化实施_MySQL定时任务与脚本管理MySQL数据备份自动化实施_MySQL定时任务与脚本管理MySQL数据备份自动化实施_MySQL定时任务与脚本管理MySQL数据备份自动化实施_MySQL定时任务与脚本管理

    mysql数据备份的自动化实施核心在于结合mysqldump等工具与操作系统的定时任务(如linux的cron或windows的task scheduler),通过编写和管理脚本实现定期执行备份。1. 使用mysqldump作为基础工具,编写包含数据库连接信息、时间戳文件名、日志记录、压缩清理等功能…

    2026年9月21日 用户投稿
    200
  • VSCode编写Java代码方法_VSCode搭建Java开发环境实战教程

    答案:在VSCode中配置Java开发环境需安装JDK并设置环境变量,再安装VSCode及Java扩展包,即可实现Java项目的创建、编写、运行与调试。它轻量、启动快,支持多语言和丰富扩展,集成Maven/Gradle,适合日常开发。 在VSCode里编写Java代码,说白了,就是把这个轻量级的代码…

    2026年9月21日
    100
  • ChatGPT代码会出错吗_AI编程中5个常见错误及解决方法

    AI编程中常见错误包括语法不匹配、逻辑遗漏、API误用、安全漏洞和集成困难,需通过版本明确、测试验证、文档核对、安全扫描和上下文补充等方式解决,结合人工审查与测试才能确保代码质量。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ ChatGP…

    2026年9月20日
    100
  • 在Linux中如何通过命令行安装Java JDK

    在Linux中安装Java JDK可通过包管理器或手动安装,推荐使用系统自带工具安装OpenJDK。对于Ubuntu/Debian系统,先更新软件包列表:sudo apt update,再搜索可用版本:apt search openjdk-*,然后安装指定版本如OpenJDK 17:sudo apt…

    2026年9月20日
    000
  • 如何配置Scala与Java混合开发环境 Scala环境与JDK整合方法

    配置Scala与Java混合开发环境的关键是安装JDK、Scala并统一管理依赖。1. 安装JDK 8或11,配置JAVA_HOME和PATH;2. 安装Scala并设置SCALA_HOME;3. 使用SBT创建项目,配置build.sbt,组织src目录;4. 在IntelliJ IDEA中安装S…

    2026年9月20日
    100
  • mysql如何实现用户注册功能

    答案:通过MySQL创建用户表并结合后端逻辑实现注册功能。首先在MySQL中创建包含用户名、密码、邮箱等字段的users表,确保唯一性约束;后端接收%ignore_a_1%提交的注册数据,对密码加密(如SHA256或bcrypt),使用参数化查询将数据安全存入数据库;前端通过表单或AJAX发送注册请…

    2026年9月13日
    200
  • 如何在Laravel中实现数据加密

    在laravel中实现数据加密的最直接且推荐方式是使用内置的crypt门面,其基于openssl并默认采用aes-256算法,通过app_key进行加解密。1. 使用crypt::encryptstring()或crypt::encrypt()对字符串或数组/对象进行加密;2. 使用crypt::d…

    2026年9月13日
    100
  • 如何在mysql中迁移分区表数据

    答案:MySQL分区表数据迁移需确保结构兼容性和数据完整性,常用方法包括:1. 使用INSERT INTO…SELECT迁移数据,要求目标表已存在且WHERE条件匹配分区范围;2. 通过mysqldump导出导入,适用于跨实例迁移,操作简单但大表性能差;3. 模拟EXCHANGE PAR…

    2026年9月10日
    100
  • Java中如何创建一个小型在线考试平台

    答案是使用Java Spring Boot搭建简易在线考试平台,实现用户登录、题库管理、考试创建、答题评分等核心功能,适合教学练手。 要创建一个小型在线考试平台,你可以使用 Java 搭配 Spring Boot 快速搭建后端服务,结合前端技术(如 HTML/CSS/JavaScript 或 Thy…

    2026年9月10日
    100
  • 怎么在VSCode分段运行_VSCode分步执行代码教程

    分段运行代码在VSCode中主要通过调试器单步执行和交互式窗口分块运行实现。首先,使用调试器可设置断点并按F5启动,通过F10(单步跳过)、F11(单步进入)、Shift+F11(单步跳出)控制执行流程,同时在变量、监视、调用堆栈面板中观察程序状态,适用于定位复杂bug和理解深层逻辑;其次,利用Py…

    2026年9月10日
    100
  • thinkphp8相比thinkphp6有哪些新特性

    ThinkPHP8在性能、架构、功能和开发体验上全面升级,采用全新模块化架构,优化路由解析与数据库查询,提升响应速度;支持PHP 8.0+新特性,代码更简洁高效;增强中间件、路由、模型及验证功能,强化安全防护;兼容TP6代码,无缝升级,降低迁移成本。 ThinkPHP8 相比 ThinkPHP6 进…

    2026年9月10日
    400

发表回复

登录后才能评论
关注微信