Informix自定义聚集函数
来源:互联网 发布:个人所得税数据 编辑:程序博客网 时间:2024/05/05 19:47
Informix自定义聚集函数
如何自定义聚集函数,本文章以 strsum 函数举例.
功能说明:
strsum函数的功能:使用 '-'连接符号将多个字符连接在一起。
举例:
create table test_str(t1 integer,t2 varchar(255));
表test_str的数据如下
insert into test_str values (1,'A');
insert into test_str values (1,'B');
insert into test_str values (1,'C');
insert into test_str values (2,'A');
insert into test_str values (2,'B');
insert into test_str values (3,'A');
insert into test_str values (4,'A');
select t1,strsum(t2) t2_sum from test_str
where 1=1
group by t1 order by t1;
t1 t2_sum
1 A-B-C-
2 A-B-
3 A-
4 A-
若需要去掉最后一个'-'字符,只需要修改为如下SQL
select t1,rtrim(strsum(t2),'-') t2_sum from test_str
where 1=1
group by t1 order by t1;
t1 t2_sum
1 A-B-C
2 A-B
3 A
4 A
在某些情况,我们需要采用不同的连接符,我们只需要修改查询SQL语句,采用replace函数替换'-'符号。
select t1,replace(rtrim(strsum(t2),'-'),'-','||') t2_sum from test_str
where 1=1
group by t1 order by t1;
t1 t2_sum
1 A||B||C
2 A||B
3 A
4 A
如何定义聚集函数
如下我们将说明如何自定义该聚集函数strsum;
首先定义聚集函数的4个子函数str_sum_init,str_sum_iter,str_sum_combine,str_sum_final;其中str_sum_iter中定义了聚集算法为:采用'-'连接。
最后定义聚集函数strsum
代码详细见如下:
CREATE FUNCTION str_sum_init (dummy lvarchar(4000))
RETURNING lvarchar(4000);
RETURN '';
END FUNCTION;
CREATE FUNCTION str_sum_iter (result lvarchar(4000), value lvarchar(4000))
RETURNING lvarchar(4000);
RETURN result || value ||'-';
END FUNCTION;
CREATE FUNCTION str_sum_combine(partial1 lvarchar(4000), partial2 lvarchar(4000))
RETURNING lvarchar(4000);
RETURN partial1 || partial2;
END FUNCTION;
CREATE FUNCTION str_sum_final(final lvarchar(4000))
RETURNING lvarchar(4000);
RETURN final;
END FUNCTION;
CREATE AGGREGATE strsum WITH
(INIT = str_sum_init,
ITER = str_sum_iter,
COMBINE = str_sum_combine,
FINAL = str_sum_final);
- Informix自定义聚集函数
- informix 自定义聚集函数
- Oracle自定义聚集函数
- Oracle自定义聚集函数
- 自定义聚集函数
- Oracle自定义聚集函数
- Oracle自定义聚集函数
- oracle自定义聚集函数
- sqlserver自定义聚集函数
- Oracle中自定义聚集函数
- 一个Oracle自定义聚集函数的例子
- 自定义oracle聚集函数,类似于功能wm_concat
- 一个非常有用的自定义聚集函数
- PARALLEL_ENABLE AGGREGATE USING Oracle自定义聚集函数
- 自定义oracle聚集函数,类似于功能wm_concat
- 自定义oracle聚集函数,类似于功能wm_concat
- oracle自定义聚集函数实现列合并
- 聚集函数
- 用RMI实现一个简单的实时聊天系统(java语言)
- 吴炯:投资开心网的阿里巴巴前CTO
- VC文件扩展名解读大全
- Jquery单选框、复选框 根据name取值
- 获取系统当前时间的方法---与时间相关的方法
- Informix自定义聚集函数
- 正则表达式
- PCI总线定义
- 设计模式群 群号: 3148911
- 判断你的文件是否为合法的PE文件和应用类型
- 按比例保存图片
- 纯css文本溢出省略(需定义宽度,兼容IE6、IE7、Firefox2.0、Opera9.0)
- EMC的一个笔试题目
- 浅析大型高并发高负载网站的系统架构