GreenPlum学习笔记:create or replace function创建函数

  原始表数据如下:

  需求:现要求按分号“;”将rate_item列进行分割后插入到新的数据表中。

复制代码
CREATE OR REPLACE FUNCTION fun_gp_test_xxx_20181026(v_month int)
RETURNS INT AS
$BODY$

declare
v_num int;
v_count int;

begin
    v_num := 0;
    v_count := 1;
    
    while v_count > 0 loop
        v_num := v_num + 1;
        select count(1) into v_count from temp_cwh_test_1106 where split_part(rate_item,';',v_num) <> '';
        if v_count > 0 then
            insert into temp_cwh_test_1106_02 select serv_id,usage_date,latn_id,split_part(rate_item,';',v_num) from temp_cwh_test_1106 where split_part(rate_item,';',v_num) <> ''; ---- 需要提前建好temp_cwh_test_1106_02表
        end if;
    end loop;
return 0;
end;


$BODY$
  LANGUAGE plpgsql VOLATILE;
复制代码

  创建函数之后,调用函数。

---- 函数调用 ----
select fun_gp_test_xxx_20181026('201810')

---- 查看结果表 ----
select * from temp_cwh_test_1106_02;  -- 182

  结果如下:


END 2018-11-07 00:10:02

posted @   Hider1214  阅读(8540)  评论(0编辑  收藏  举报
编辑推荐:
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示