select e.user_id,decode(to_char(e.datatype),'3',max(e.cell_value),'2',f_sum(e.cell_value)) cell_value
from e_1099310300000000002 e
group by e.user_id,atd.datatype
这样的话就不用管sum(e.cell_value)是字符就不会报ora-01722错了,当然也可以合并,这里需求是取max不是合并
create or replace type t_sum as object (
--author lidongbo
var varchar2(999),
static function ODCIAggregateInitialize(sctx In Out t_sum) return number,
member function ODCIAggregateIterate(self In Out t_sum, value In varchar2) return number,
member function ODCIAggregateMerge(self In Out t_sum, ctx2 In t_sum) return number,
member function ODCIAggregateTerminate(self In Out t_sum, returnValue Out varchar2, flags In varchar2) return number
)
create or replace type body t_sum is
--author lidongbo
static function ODCIAggregateInitialize (sctx In Out t_sum)
return number is
begin
sctx := t_sum(0);
return ODCIConst.Success;
end;
member function ODCIAggregateIterate (self In Out t_sum, value In varchar2)
return number is
begin
self.var := self.var + value;
return ODCIConst.Success;
EXCEPTION
WHEN OTHERS THEN
IF SELF.var < VALUE THEN
SELF.var := VALUE;
END IF;
return ODCIConst.Success;
end;
member function ODCIAggregateMerge(self In Out t_sum, ctx2 In t_sum)
return number is
BEGIN
self.var := self.var;
return ODCIconst.Success;
end;
member function ODCIAggregateTerminate(self In Out t_sum, returnValue Out varchar2, flags In varchar2)
return number is
begin
returnValue := self.var;
return ODCIConst.Success;
end;
end;
CREATE OR REPLACE FUNCTION f_sum(input varchar2 )
--author lidongbo
RETURN varchar2
PARALLEL_ENABLE AGGREGATE USING t_sum;
分享到:
相关推荐
Oracle数据库系统提供了丰富的函数库,包括字符函数、日期函数、数据类型转换函数以及集合函数,以帮助用户在处理数据时实现各种复杂的操作。下面将详细解释这些函数的用途和使用方法。 1. **字符函数** - `LOWER...
除了上述函数,Oracle还提供其他很多函数,如TO_DATE用于将字符串转换为日期,TO_CHAR用于将日期转换为字符串,NVL用于处理NULL值,以及COUNT、SUM、AVG、MAX、MIN等聚合函数。了解并熟练使用这些函数,能极大地提高...
聚合函数用于对一组值进行计算,如COUNT(), SUM(), AVG(), MAX(), MIN()等,常用于GROUP BY语句中对分组数据进行统计分析。 以上就是Oracle日期函数、字符函数和部分聚合函数的详细介绍,理解并熟练运用这些函数...
Oracle还提供了一些统计函数,如AVG()计算平均值,SUM()求和,COUNT()统计数量,MIN()和MAX()找出最小值和最大值。这些统计函数在数据分析和报表生成中发挥着关键作用。 在数据库管理工具方面,Oracle SQL ...
6. 聚合函数:如COUNT(计数)、SUM(求和)、AVG(平均值)、MAX/MIN(最大值/最小值)等,用于汇总数据。 7. 位操作函数:如BITAND(按位与)、BITOR(按位或)、BITNOT(按位非)等,处理二进制数据。 8. 非...
2. **字符型函数**:字符处理是数据库操作中的重要环节,Oracle提供了许多用于处理字符串的函数。如`SUBSTR`用于提取字符串的一部分,`UPPER`和`LOWER`分别用于将字符串转为大写或小写,`INSTR`则用于查找子串的位置...
在Oracle数据库中,处理字符串的函数非常丰富,如`SUBSTR()`, `INSTR()`, `UPPER()`, `LOWER()`等。`SUBSTR()`用于提取字符串的一部分,`INSTR()`用于查找子字符串在主字符串中的位置,而`UPPER()`和`LOWER()`则分别...
6. SUM函数:计算列中数值的总和。 7. VARIANCE函数:返回列中数值的方差。 其他函数 1. BFILENAME函数:用于指定目录和文件名的二进制字段。 2. DECODE函数:根据条件判断进行选择性值转换。 3. DUMP函数:返回...
Oracle数据库是业界广泛使用的关系型数据库系统,它提供了丰富多样的函数,用于处理数据、执行计算、格式化输出等任务。本知识点集合将详细介绍Oracle数据库中提供的各种函数及其使用方法,从而帮助开发者在进行...
"Oracle离线函数大全.rar" 提供了Oracle数据库中所有函数的详细信息,包括分析函数、聚合函数、转换函数、日期型函数、字符型函数、数值型函数和其他各种实用函数。这份资源对于Oracle数据库管理员、开发人员以及...
Oracle数据库是世界上最广泛使用的数据库系统之一,其内置函数是实现高效数据处理的关键工具。这篇文档“oracle内置函数大全”提供了一个全面的参考,适合数据库管理员、开发人员以及初学者使用。下面将详细介绍...
聚组函数在SQL查询中用于汇总数据,如`COUNT`计数,`SUM`求和,`AVG`计算平均值,`MIN`和`MAX`找出最小和最大值,以及`GROUP BY`语句配合使用这些函数进行分组。 6. 分析函数: 分析函数允许在数据分组后进行更复杂...
Oracle内置函数是其强大功能的关键组成部分,这些函数极大地丰富了SQL语言的表达能力,使得数据处理和查询更为便捷高效。以下是对Oracle内置函数的详细概述: 1. **数学函数**: - `ABS(x)`:返回x的绝对值。 - `...
`SUM()`函数用于计算所有值的总和,`AVG()`返回平均值,`MAX()`和`MIN()`分别找到最大和最小值。特别的是,`RANK()`和`DENSE_RANK()`在分组排序后提供行号,区别在于当有相同值时,`RANK()`会跳过行号,而`DENSE_...
**聚组函数**如`COUNT`、`SUM`、`AVG`、`MAX`和`MIN`用于对一组数据进行统计汇总。它们常在SQL查询的`GROUP BY`语句中使用,帮助我们快速获取每个分组的计数、总和、平均值、最大值和最小值。 **分析函数**如`RANK`...
Oracle数据库是世界上最广泛使用的数据库系统之一,其强大的功能和丰富的内置函数是其核心优势之一。本文将基于"Oracle常用函数 CHM"这个资源,详细解析一些Oracle数据库中常见的函数及其应用,帮助你更好地理解和...
Oracle数据库系统是世界上最广泛使用的数据库管理系统之一,它提供了丰富的内置函数来帮助用户处理和操作数据。在本篇文章中,我们将深入探讨Oracle中的常用函数,这些函数对于日常的SQL查询、数据处理以及数据库...
首先,"ORACLE函数大全.doc"很可能是整个文档集的总览,包含Oracle数据库中的各类函数的概览和分类,可能包括数学函数、字符串函数、日期时间函数、转换函数、条件函数、系统信息函数等。这些函数在SQL查询和PL/SQL...
### Oracle常用函数详解 #### 一、概述 Oracle 数据库提供了丰富的内置函数,极大地提高了 SQL 语句在处理数据时的灵活性与效率。这些函数主要分为两大类:单行函数和多行函数(也称为聚合函数)。单行函数通常...
Oracle数据库是世界上最广泛使用的数据库系统之一,其强大的功能和丰富的内置函数使得数据处理变得高效而灵活。本篇文章将深入探讨“Oracle常见函数集锦”,主要关注在SQL查询中常用的Oracle函数,这些函数对于数据...