GreenPlum學習筆記:create or replace function建立函式
阿新 • • 發佈:2018-11-07
原始表資料如下:
需求:現要求按分號“;”將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