create procedure add_up(var_int_id integer)--定义传参 returning varchar(1000); --返回合并后的值 define var_num lvarchar(1000); --定义变量,尽量用lvarchar,因为varchar最多只能255个字符 define var_out lvarchar(1000); --定义变量,尽量用lvarchar,因为varchar最多只能255个字符 let var_num=''; --赋初始值 let var_out=''; --赋初始值 foreach select num into var_num from table_a where int_id=var_int_id and num is not null --将num的值以列表的形式放到var_num变量中,有多少个值就 循环多少次 let var_out=var_out||'-'||var_num; --将num的值用-连接起来 end foreach; return var_out; --返回值 end procedure;
通过调用上面的函数add_up就可以达到目的,得到table_b的样子 select distinct int_id,add_up(int_id) from table_a into temp table_b