Oracle中SQL编写集锦

1、实现行列动态转换,常用于主从表关联时的特殊需求

select rwbm,psqh,
           max(decode(xh1,1,yy))JKYL1,
           max(decode(xh1,2,yy))JKYL2,
           max(decode(xh1,3,yy))JKYL3,
           max(decode(xh1,4,yy))JKYL4,
           max(decode(xh1,5,yy))JKYL5,
           max(decode(xh1,1,sz))RZSL1,
           max(decode(xh1,2,sz))RZSL2,
           max(decode(xh1,3,sz))RZSL3,
           max(decode(xh1,4,sz))RZSL4,
           max(decode(xh1,5,sz))RZSL5
       from(
          select a.*,row_number()over(partition by rwbm,psqh order by xh)xh1
          from JC_CSD_SJCSCTZK a
          where pz is not null
       )group by rwbm,psqh

2、过程编写时进行分类处理

create or replace procedure [过程名]([参数1] in [类型],[参数2] in [类型]) is
CN NUMBER(1):=0;                     --是否已经存在
begin
     FOR X IN ([待导出数据查询SQL])
     LOOP
        FOR Y IN (select count(*) TS from [判断导入表对应数据存在])
        LOOP
           CN := Y.TS;            --已存在数据条数
        END LOOP;
        IF CN>0 THEN              --更新记录
           [update数据];
        ELSE                      --添加记录
           [insert数据];
        END IF;
        CN := 0;
     END LOOP;
     commit;
     exception when others then rollback;
end;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值