使用存储过程代替自定义函数计算CP95
来源:互联网 发布:java arraylist排序 编辑:程序博客网 时间:2024/06/17 21:14
需要创建一个存储过程,实现对于一个数据表中的数据进行统计。不同的字段统计的方式不同,有的是统计最大值,有的是最小值,有的是平均值,还有的是cp95值(即将所有数据从小打大进行排序,选择前95%个值中最大的值。计算cp95值的方式在之前一篇文章中有提到《存储过程获取第n个最大值》)。起初的想法是通过创建自定义聚合函数实现cp95值的统计,实现效果类似于系统函数max等。
select max(A),min(B),avg(C),cp95(D)from tb_test
但是实现却很复杂,需要用C#实现函数模块,再在sql server中定义这个函数。也使数据库的部署带来很大的麻烦,因为一般情况下数据库是由用户安装,我们只提供数据库文件和脚本。
后来又想用简单的标量值或表值函数来实现,但是函数的实现有很多限制,无法执行动态sql。最后只能通过存储过程实现,接口为cp95字段名和表名,在存储过程构建cp95查询计算语句,返回计算结果。
接下来又遇到另外一个问题,想要把存储过程返回值放到select语句中,像使用函数那样使用存储过程,类似
select max(A), min(B), avg(C), exec cp95 'D','tb_test'from tb_test
这种方法是不允许的,想要select 存储过程结果,只能通过链接数据库的方式。所以只能进行分步执行的方式,先计算出cp95值,用变量保存。动态构建select 语句,将cp95值字段直接用之前计算的值代替。
- 使用存储过程代替自定义函数计算CP95
- 存储过程调用自定义函数
- 自定义存储过程和函数
- oracle自定义函数、存储过程
- 自定义存储过程和函数
- sql2008 存储过程,函数,视图,自定义数据类型的使用
- MySql 自定义函数,存储过程,游标的使用
- 函数,自定义函数,存储过程比较
- 【MySQL】MySQL函数、自定义函数、存储过程
- mysql 存储过程、存储过程嵌套、自定义函数代码示例
- 如何导出存储过程和自定义函数?
- oracle自定义函数和存储过程
- 存储过程和自定义函数的区别
- 存储过程和自定义函数的区别
- 常用sql自定义函数以及存储过程
- 存储过程和自定义函数的优缺点
- orcl中的存储过程,自定义函数,触发器
- mysql创建自定义函数和存储过程
- Android 消息机制 进程调度问题
- Uva 10294 Arif in Dhaka (First Love Part 2)
- hessianPHP详解
- 二叉树的各种实现
- The Kalman Filter
- 使用存储过程代替自定义函数计算CP95
- 读取磁盘内容
- 又一個跨平台遊戲開發工具?Game Closure 體驗
- 超好学习网站:http://dreamrunner.org/wiki/public_html/index.html
- 链表操作-创建、输出、删除,添加节点
- linux下最大文件描述符的限制
- SQL中内连接和外连接
- 【记】设计模式的相关内容
- SQL SERVER 2005 数据库状态为“可疑”的解决方法