分享最近写的 两条sql语句
1. 搭建基本环境
插入测试数据
insert into jgdm (jgdm,jgmc) values('12300000000','河南省');
insert into jgdm (jgdm,jgmc) values('12300000005','河南省郑州市');
commit;
insert into jgdm(jgdm,jgmc) values(00300000000,'重庆市');
insert into jgdm(jgdm,jgmc) values(00300000001,'重庆市石柱县');
insert into jgdm(jgdm,jgmc) values(00300000004,'重庆市綦江区');
commit;
2. 分情况 更新 表
declare
begin
for v_jgmc in (select jgmc from jgdm ) loop
dbms_output.put_line('更新省的相关信息');
if instr(v_jgmc.jgmc,'省')<> 0 and ( instr(v_jgmc.jgmc,'县')=0 or instr(v_jgmc.jgmc,'区')=0 and instr(v_jgmc.jgmc,'市')<>0 ) then
--1. 更新 机构级次代码
--把 '''||v_jgmc.jgmc||''' 中 有 ’省‘ 并且没有 '市'的 jgjcdm 更新为 00
execute immediate 'update jgdm set jgjcdm=''00'' where instr('''||v_jgmc.jgmc||''',''省'')<>0 and instr('''||v_jgmc.jgmc||''',''市'')=0';
--把 '''||v_jgmc.jgmc||''' 中 有 ’省‘ 并且有 '市'的 jgjcdm 更新为 01
execute immediate 'update jgdm set jgjcdm=''01'' where instr('''||v_jgmc.jgmc||''',''省'')<>0 and instr('''||v_jgmc.jgmc||''',''市'')<>0';
--2. 更新 上级机构代码
--把 '''||v_jgmc.jgmc||''' 中 有 ’省‘ 并且没有 '市'的 sjjgdm 更新为 自己的 jgdm
execute immediate 'update jgdm set sjjgdm=(select jgdm from jgdm where instr('''||v_jgmc.jgmc||''',''省'')<>0 and instr('''||v_jgmc.jgmc||''',''市'')=0 and instr('''||v_jgmc.jgmc||''',jgjc)<>0) ';
--把 '''||v_jgmc.jgmc||''' 中 有 ’省‘ 并且有 '市'的 sjjgdm 更新为 自己的 jgdm
--execute immediate 'update jgdm set sjjgdm=(select jgdm from jgdm where instr('''||v_jgmc.jgmc||''',''省'')<>0 and instr('''||v_jgmc.jgmc||''',''市'')<>0 )';
--3. 更新 机构简称
--把 '''||v_jgmc.jgmc||''' 中 有 ’省‘ 并且没有 '市'的 jgjc 更新为 自己的'''||v_jgmc.jgmc||'''
execute immediate 'update jgdm set jgjc='''||v_jgmc.jgmc||''' where instr('''||v_jgmc.jgmc||''',''省'')<>0 and instr('''||v_jgmc.jgmc||''',''市'')=0';
--把 '''||v_jgmc.jgmc||''' 中 有 ’省‘ 并且有 '市'的 jgjc 更新为 自己所属的市
execute immediate 'update jgdm set jgjc= substr('''||v_jgmc.jgmc||''',instr('''||v_jgmc.jgmc||''',''省'')+1,length('''||v_jgmc.jgmc||''')-instr('''||v_jgmc.jgmc||''',''省'')) where instr('''||v_jgmc.jgmc||''',''省'')<>0 and instr('''||v_jgmc.jgmc||''',''市'')<>0';
commit;
end if;
dbms_output.put_line('更新直辖市的相关信息');
if instr('''||v_jgmc.jgmc||''','省')=0 and ( instr('''||v_jgmc.jgmc||''','县')<>0 or instr('''||v_jgmc.jgmc||''','区')<>0 and instr('''||v_jgmc.jgmc||''','市')<>0 ) then
-- dbms_output.put_line(v_'''||v_jgmc.jgmc||'''.'''||v_jgmc.jgmc||''');
--1. 更新 机构级次代码
--把 '''||v_jgmc.jgmc||''' 中 没有 ’省、县、区‘ 并且有 '市'的 jgjcdm 更新为 00
execute immediate 'update jgdm set jgjcdm=''00'' where instr('''||v_jgmc.jgmc||''',''省'')=0 and instr('''||v_jgmc.jgmc||''',''县'')=0 and instr('''||v_jgmc.jgmc||''',''区'')=0 and instr('''||v_jgmc.jgmc||''',''市'')<>0 ';
--把 '''||v_jgmc.jgmc||''' 中 有 ’市、县、区‘ 并且没有 '省' 的 jgjcdm 更新为 01
execute immediate 'update jgdm set jgjcdm=''01'' where ( instr('''||v_jgmc.jgmc||''',''县'')<>0 or instr('''||v_jgmc.jgmc||''',''区'')<>0 ) and instr('''||v_jgmc.jgmc||''',''市'')<>0 ';
--2. 更新 上级机构代码
--把 '''||v_jgmc.jgmc||''' 中 有 ’市‘ 并且没有 ’省、县、区' 的 sjjgdm 更新为 自己的 jgdm
execute immediate 'update jgdm t2 set sjjgdm=(select jgdm from jgdm t1 where (instr('''||v_jgmc.jgmc||''',''省'')=0 and instr('''||v_jgmc.jgmc||''',''县'')=0 and instr('''||v_jgmc.jgmc||''',''区'')=0) and instr('''||v_jgmc.jgmc||''',''市'')<>0 ) ';
--把 '''||v_jgmc.jgmc||''' 中 有 ’省‘ 并且有 '市'的 jgjc 更新为 自己所属的市
execute immediate 'update jgdm set jgjc= substr('''||v_jgmc.jgmc||''',instr('''||v_jgmc.jgmc||''',''市'')+1,length('''||v_jgmc.jgmc||''')-instr('''||v_jgmc.jgmc||''',''市'')) where instr('''||v_jgmc.jgmc||''',''省'')=0 and instr('''||v_jgmc.jgmc||''',''市'')<>0 ';
--3. 更新 机构简称
--把 '''||v_jgmc.jgmc||''' 中 有 '市' 并且没有 '县','区',‘省‘ 并且的 jgjc 更新为 自己的'''||v_jgmc.jgmc||'''
execute immediate 'update jgdm set jgjc='''||v_jgmc.jgmc||''' where instr('''||v_jgmc.jgmc||''',''市'')<>0 and ( instr('''||v_jgmc.jgmc||''',''县'')=0 and instr('''||v_jgmc.jgmc||''',''区'')=0 ) ';
--把 '''||v_jgmc.jgmc||''' 中 有 ’市‘ 并且有 '县' '区'的 jgjc 更新为 自己所属的市
execute immediate 'update jgdm set jgjc= substr('''||v_jgmc.jgmc||''',instr('''||v_jgmc.jgmc||''',''市'')+1,length('''||v_jgmc.jgmc||''')-instr('''||v_jgmc.jgmc||''',''市'')) where instr('''||v_jgmc.jgmc||''',''市'')<>0 and (instr('''||v_jgmc.jgmc||''',''县'')<>0 or instr('''||v_jgmc.jgmc||''',''区'')<>0 ) ';
commit;
end if;
end loop;
end;
写的不好,望见谅
分享最近写的 两条sql语句的更多相关文章
- 题目:写出一条SQL语句,查询工资高于10000,且与他所在部门的经理年龄相同的职工姓名。
create table Emp( eid char(20) primary key, ename char(20), age integer check (age > 0), did char ...
- 写出一条Sql语句:取出表A中第31到第40记录(SQLServer,以自动增长的ID作为主键,注意:ID可能不是连续的。
答:解1: select top 10 * from A where id not in (select top 30 id from A) 解2: select top 10 * from A ...
- 曾经很长时间不会写的两个SQL语句(group by,having)
1.统计各部门的平均工资,平均资金(要求同时显示出部门名称,部门编号,部门总人数) SQL)),) 部门平均工资,)),) 部门平均资金 FROM EMP E RIGHT JOIN DEPT D ON ...
- 写出一条Sql语句:取出表Customer中第31到第40记录(SQLServer,以自动增长的Id作为主键,注意:Id可能不是连续的。
select top 10 * from (select ROW_NUMBER() over(order by Id) as rows,* from Customer) as C where C.ro ...
- 写出一条SQL语句:取出表A中第31到40行记录(SQLserver,以自增长的ID作为主键,注意: 一条Sql语句:取出表A中第31到第40记录
解1: select top 10 * from A where id not in (select top 30 id from A) 解2: select top 10 * from A wher ...
- 使用传入的总记录数实现一条sql语句完成分页查询
使用传入的总记录数实现一条sql语句完成分页查询 问题:在传统的分页查询的实现中不可避免的需要两条sql语句,一条用于查询数据一条用于查询总记录数.如下面的实际代码所示: Img1 当然如果使 ...
- 关联映射、关联查询【重点掌握一条SQL语句的那种方法】
1 什么叫关联映射 通过数据库对象之间的关联关系(一对一.一对多.多对多),反映到实体对象上之间的引用. 举例 用户实体类(User):user_id user_name user_token 笔记本 ...
- CASE WHEN 及 SELECT CASE WHEN的用法(写了一坨烂代码发现两条sql就行了, 哎)
转自:http://blog.sina.com.cn/s/blog_4c538f6c01012mzt.html Case具有两种格式.简单Case函数和Case搜索函数. 简单Case函数 CASE ...
- [SQL]开启事物,当两条插入语句有出现错误的时候,没有错误的就插入到表中,错误的语句不影响到正确的插入语句
begin transaction mustt insert into student values(,'kkk','j大洒扫','j','djhdjh') insert into student v ...
随机推荐
- Android JSON数据解析(数据传输)
上篇随笔详细介绍了三种解析服务器端传过来的xml数据格式,而对于服务器端来说,返回给客户端的数据格式一般分为html.xml和json这三 种格式,那么本篇随笔将讲解一下json这个知识点,包括如何通 ...
- eclipse报错 com/genuitec/eclipse/j2eedt/core/J2EEProjectUtil 转
今天eclipse突然报了com/genuitec/eclipse/j2eedt/core/J2EEProjectUtil 错误,并且工程文件打不开了,在网上找了一下资料,然后按照方法操作了一遍,好了 ...
- Linux学习笔记25——命名管道(FIFO)
1 命名管道(FIFO) 管道应用的一个重大缺陷就是没有名字,因此只能用于亲缘进程之间的通信.后来从管道为基础提出命名管道(named pipe,FIFO)的概念,该限制得到了克服.FIFO不同于管道 ...
- 出现 HTTP Error 503. The service is unavailable 错误
今天修改一些配置后重启了IIS,兴高采烈的按下了回车.duang一下,HTTP Error 503. The service is unavailable,蹦出这行字,网站挂了. 没动别的竟然这样了. ...
- vijosP1285 佳佳的魔法药水
vijosP1285 佳佳的魔法药水 链接:https://vijos.org/p/1285 [思路] 图论思想. 很巧妙. 如A+B=C,将AB之间连边,边权为C,用以找相连物品与合成物. 用Dij ...
- RTP, RTCP, RTSP 协议介绍
流媒体是边下载边播放的方式, 是视频会议.IP电话等应用场合的技术基础. 为什么TCP/IP协议就不能满足多媒体通信的要求呢?因为TCP有以下4个特点:1.TCP重传机制2.TCP ...
- LOL游戏程序中对一些函数的Hook记录(Win10 x64)
[PC Hunter Standard][League of Legends.exe-->Ring3 Hook]: 108Hooked Object Hook Address and Locat ...
- nyoj 102 次方求模【快速幂】
次方求模 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 求a的b次方对c取余的值 输入 第一行输入一个整数n表示测试数据的组数(n<100)每组测试只有一 ...
- UVa12063 Zeros and Ones
神坑 1竟然还要取模 在后面填数多好的 #include<cstdio> #include<cstring> #include<cstdlib> #include& ...
- llvm學習(二)————llvm編譯與環境構建
本文由博主原创,转载请注明出处(保留此处和链接): IT人生(http://blog.csdn.net/robinblog/article/details/17339027) 在2011十月份的时候, ...