zoukankan      html  css  js  c++  java
  • 分享最近写的 两条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;

    写的不好,望见谅

  • 相关阅读:
    防止特殊html字符的问题(xxs攻击)方法
    asp.net 服务器Button控件使用(onclick和onclientclick使用)
    Asp:Button控件onclick事件无刷新页面提示消息
    动态添加Marquee标签,并动态赋值与属性
    asp.net 前台通过Eval()绑定动态显示样式
    asp.net 中json字符串转换
    近况
    C# fixed语句固定变量详解
    fixed说明
    Net架构必备工具列表
  • 原文地址:https://www.cnblogs.com/iyoume2008/p/5169205.html
Copyright © 2011-2022 走看看